一,基于单纯的密码验证的情况:
1.安装Net::SSH::Perl模块,安装方法参照Perl模块安装
2.自动登录例子,我要用testuser用户登陆到服务器192.168.0.100执行df命令:

#!/usr/bin/perl -w
use strict;
use Net::SSH::Perl;
my $host = '192.168.0.196';
my $user = 'root';
my $password = 'pass';
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user,$password);
my ($stdout,$stderr,$exit) = $ssh->cmd("df -h");
$ssh->cmd("exit");
if($stderr)
{
    print "ErrorCode:$exit\n";
    print "ErrorMsg:$stderr";
    }
 else
{
    print $stdout;
    }
exit $exit;


 

二,基于带密码(passphrase)的公钥密钥对认证的情况:
1.安装Net::OpenSSH模块,安装方法参照Perl模块安装,其实这个模块比上面那个模块更强大,密码登录的也可以用这个模块。
2.代码例子,还是用testuser用户登陆到服务器192.168.0.100执行df命令:
 
#!/usr/bin/perl -w
use strict; use Net::OpenSSH;
my $host = '192.168.0.100';
my $user = 'testuser';
my $passphrase = '123123';
my $key = '/home/testuser/.ssh/id_rsa';
my %param = (
             user => $user,
             passphrase => $passphrase,
             key_path => $key,
             timeout => 10
             );
my $ssh = Net::OpenSSH->new($host,%param);
my ($stdout,$stderr) = $ssh->capture2("df -h");
if($stdout){
    print $stdout;
    } else {
    print $ssh->error;
    $stderr and print $stderr;
    }

 


用cpan Net::SSH::Perl 安装模块并提示成功后,运行脚本出现了“Can't locate Math/Pari.pm in @INC“的错误。

运行安装 perl -MCPAN -e 'install Math::Pari' 后解决

参考:http://www.cnblogs.com/morya/archive/2011/08/09/2132822.html

 


 N天后,发现Net::SSH::Perl奇慢无比,改用SCP模块了。。。

posted @ 2011-12-14 10:28 大力 阅读(33) 评论(0) 编辑

 PHP一直提示不能创建临时文件,定义了 php.ini 里的 upload_tmp_dir ="C:\WINDOWS\Temp\" 无效,改成upload_tmp_dir ="C:\WINDOWS\Temp\php\" 后正常,无语。。。

posted @ 2011-10-24 22:30 大力 阅读(56) 评论(0) 编辑

A的设置

<httpModules>
          
<add name="SiteCache" type="SiteCache"/>
        
</httpModules>

B的设置(不用的项,清除)

<httpModules>
     
<clear/>
</httpModules>

如果A.B都用到

<appSettings>
  
<add key="app" value="" />
</appSettings>

B运行时会提示app已经加载,此时可以

<appSettings>
  
<remove name="app" />
  
<add key="app" value="" />
</appSettings>

或者:

<appSettings>
  
<clear />
  
<add key="app" value="" />
</appSettings>

posted @ 2011-10-18 09:28 大力 阅读(8) 评论(0) 编辑

今天有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份。让我帮他解决一下,不然他要赔偿客户很多钱。

SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:

1. 至少有一个误删除之前的数据库完全备份。

2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。

针对这两个前提条件,会有三种情况:

情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具。

  a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY

  b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY,  REPLACE

  c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM  DISK = N'第一步的日志备份文件名' WITH   STOPAT = N'误删除之前的时间点' , RECOVERY

情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。

情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。

我现在面临的是第二种情况,需要找第三方工具。

开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。

后来找的是SQL Log Rescue,也不支持SQL Server 2008。

接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。

最终在officerecovery.com上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。

下面分享一下用Recovery for SQL Server进行恢复的操作步骤:

1. 运行Recovery for SQL Server

2. 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(.mdf)

3. Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。

4. Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。

5. Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。

6. 点击Start,开始恢复操作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。

7. Next,选择被恢复数据存放的目标数据库。

8. Next, 选择 Import availiable data from both database and log files

9. Next, Next, 然后就完成数据的恢复!

接下来,就是庆祝胜利!庆祝胜利最好的方式就是写一篇博客!

 

转自dudu:http://www.cnblogs.com/dudu/archive/2011/10/15/sql_server_recover_deleted_records.html

posted @ 2011-10-17 09:58 大力 阅读(23) 评论(0) 编辑

SQL2008 的收缩日志
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:
(SQL2005)
Backup Log DNName with no_log
go
dump transaction DNName with no_log
go
USE DNName
DBCC SHRINKFILE (2)
Go
--------------------------------------------------------------
(SQL2008):
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
USE [master]
   
GO
   
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
   
GO
   
ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式
    GO
   
USE DNName
   
GO
   
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
   
GO
   
USE [master]
   
GO

   
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT

   
GO

   
ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式

   
GO

优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。
缺点: 不过此动作最好不要经常使用,因为它的运行会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。
此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。

posted @ 2011-09-19 17:22 大力 阅读(19) 评论(0) 编辑
摘要: Error Details:Unable to place a FastCGI process in a JobObject. Try disabling the Application Pool CPU Limit feature Error Number: 5 (0x80070005). Error Description: 拒绝访问。阅读全文
posted @ 2011-09-07 15:16 大力 阅读(29) 评论(0) 编辑
摘要: 当你在安装了.NET Framework 4.0以上版本后,当你的应用程序以.NET Framework 4.0为框架版本,你的任意服务器请求,都将被进行服务器请求验证(ValidationRequest),这不仅包括ASP.NET,同时也包括Web Services等各种HTTP请求,不仅仅针对aspx页面,也针对HTTP Handler,HTTP Module等,因为这个验证(Valify)的过程,将会发生在BeginRequest事件之前。 问题的解决方案就是在全局级别(Web.config中)设置<configuration><system.web> <h阅读全文
posted @ 2011-08-30 21:49 大力 阅读(15) 评论(0) 编辑
摘要: 原文见:http://bbs.okajax.com/demo/17/jQZoom allows you to realize a small magnifier window close to the image or images on your web page easily.I decided to build this jQuery plugin to embed detailed big images in my B2B.So now in few steps you can have your jQZoom in your website,eCommerce or whatever阅读全文
posted @ 2011-08-14 22:45 大力 阅读(124) 评论(0) 编辑
摘要: 有的asp数据库连接驱动会去请求这二个文件,没有权限会出现 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 的错误C:\WINDOWS\system32\WINSPOOL.DRVC:\WINDOWS\system32\sqlsrv32.rll阅读全文
posted @ 2011-07-26 17:44 大力 阅读(99) 评论(0) 编辑
摘要: .net2.0不要用到这个目录,而4.0一定要用到这个目录,所以运行.net4一定要给这个目录权限,否则不能编译。C:\WINDOWS\Microsoft.NET\assembly阅读全文
posted @ 2011-07-22 14:49 大力 阅读(22) 评论(0) 编辑