有什么办法删除远程服务器的文件

(2011-12-20 06:54:38)


有什么办法删除远程服务器的文件我的项目的业务越来越复杂了,本人搞编程的,对这个不太懂。ssh

可以远程支持命令,结合expect或是密钥验证,应该可以达到你的目标WinSCP~~~ssh可以写个perl脚本吧,更方便,用ssh模块。shell还得搭配expec,比较麻烦。以前同事写的perl脚本,借花献佛。

[code]#!/usr/bin/perl
-wuse Net::SSH::Perl;use strict;my $host = '';my $user = 'root';sub
usage{ print "Usage: $0 [IP] [password] [command1
command2 . . .]\n"; exit 0}$_ =
"@ARGV";if (/-h|--help/){
&usage }$_ = @ARGV;if ($_ < 3){
&usage }$host =
"$ARGV[0]";if ( $host !~
/^[0-9]*[0-9]\.[0-9]*[0-9]\.[0-9]*[0-9]\.[0-9]*[0-9]$/ ) { print
"Error IP address.\n"; exit
1}shift @ARGV;my $pass = $ARGV[0];shift @ARGV;my $ssh =
Net::SSH::Perl->new($host,options =>
["ConnectTimeout
5","StrictHostKeyChecking
no"]);$ssh->login($user,
$pass);while() { chomp;
my($stdout, $stderr, $exit) = $ssh->cmd($_);
#chomp($stdout); if ($exit == 0) { if (!$stdout == 0){ print
"$stdout"; } } else { print
"$host Command: $_ failed\n";

}}exit 0[/code]ftp也可以删除服务器上http://www.dhcnc.net的文件啊,只要有权限。ssh or

telnet 上去,见文 件就删。。:emn10:[b]回复 [i]ajdan4q[/i]

[/b]批量删除1000台机器的同一个文件你试试ssh上去一个一个删?让你手抽筋啊:mrgreen:[b]回复

[i]tanyangxf[/i]

[/b]老大,写个脚本嘛,这个简单。手动来,那是肯定会死人的。。:mrgreen::mrgreen::mrgreen:perl学过,不过没用过,全忘了。用java或ruby不行吗如果是批量就用我发给你的perl脚本就行了,只是单个服务器操作,就直接ssh上去删吧。java和ruby不懂。应该也是可以的。可以看看开源工具STAF,远程执行命令,但是不安全。[b]回复

[i]tanyangxf[/i] [/b][code]my $ssh =
Net::SSH::Perl->new($host,options =>
["ConnectTimeout
5","StrictHostKeyChecking
no"]);$ssh->login($user,

$pass);[/code]perl中ssh能向expect自动识别提示符吗?如果可以的话,确实可以省去不少时间,expect交互时间太慢了通过smb连接过去更舒服http://www.airmaxshoe.net!好孩子(要给用户权限)scp命令可以远程执行命令[b]回复

[i]godymoon[/i] [/b]

perl中就不用expect了。。perl的ssh模块就已经实现这个功能了。你仔细看看脚本,去找个测试环境运行下。只有shell才需要结合expect的。perl不需要,perl基本能干shell+awk+sed+expect能干的所有事。系统管理和运维用perl是个不错的选择。[b]回复

[i]tanyangxf[/i] [/b] 那不错啊,以后好好看看;

光是看代码,就感觉比expect简单、省时但是,这段代码性能差,而且没有必要这么复杂。你还可以用以下的方式来重写上面的代