我是unix noob,所以请耐心等待:-)
我有一个脚本,将一堆文件扫描到另一台服务器。
假设他们是z1.foo,z2.foo等。我想要做的是scp文件和删除目标服务器中超过5天的文件。
如何安全地从目的地删除文件?
谢谢。
以非交互方式删除文件:
ssh hostname "rm -f z100.foo z200.foo"
您可以通过使用rsync的--delete标志在同一命令中完成这两项任务。
> ls -1 localdir/ a.foo b.foo > ssh remote-host "ls -1 remotedir/" c.foo > rsync -a --delete localdir/ remote-host:remotedir/ > ssh remote-host "ls -1 remotedir/" a.foo b.foo
--delete选项从目标目录中删除源上不存在的文件。 有关何时删除文件以及如何处理排除的文件有一些select。
> man rysnc ... --delete delete extraneous files from dest dirs --delete-before receiver deletes before transfer (default) --delete-during receiver deletes during xfer, not before --delete-after receiver deletes after transfer, not before --delete-excluded also delete excluded files from dest dirs
手册页也包含这个警告:
如果使用不当,此选项可能会很危险! 首先使用
--dry-run option(-n)--dry-run option以查看哪些文件将被删除以确保没有列出重要文件是一个非常好的主意。
如果你想设置用户名和端口号:
ssh [email protected] -p22“rm -rf /home/amzad/test.php”