同事发现有部分系统的脚本执行有问题,自动清理的脚本不起作用了,后来发现是系统的find可能被替换了
登录系统发现find被替换为空文件了……
1、批量扫描有多少服务器有问题:很简单扫描远程服务目录find 如果大小为1(即使为空)。
task “find”, group => “all”, sub {
my $output= run ‘ls -al /bin/find’;
say connection->server.’:’. $output;
};
rex -qw find 1>findlist.txt
然后对findlist处理,当然是perloneline
perl -lane ‘print $F[0] if $F[5]==1’ findlist.txt|perl -pe ‘s/:$//’
获得有问题的服务器列表。
2、打印对服务器版本进行,以便找到相对应的find文件进行替换
task “issue”, group => “all”, sub {
my $output= run ‘cat /etc/issue’;
say connection->server.’:’. $output;
};
3、替换find文件,用upload上传,并改变其属主和分组,最后试着使用find命令搜索/root目录的文件,如果有输出即为替换成功。
task “findchange”, group => “all”, sub {
upload “/tmp/find”, “/bin/find”;
run ‘chown root.root /bin/find ‘;
my $output=run ‘find /root -type f|wc -l ‘;
say connection->server.’:’. $output;
};