同步服务器经常需要用到 指定单个文件或目录来删除 都可以在这里找到解决方法
0、传送某个种类型或单个文件
需要只拷贝指定后缀的文件,这个规则有点麻烦,看了几遍man手册也不知其所以然
实际的做法是 :
--include=*.xml --filter='-! */'
包含的不用说了, -! */ 的含义是排除所有目录下不符合规则的文件。
http://blog.mudflatsoftware.com/blog/2012/10/31/tricks-with-rsync-filter-rules/
--include='xxx.jpg' --filter='-! */' #单个文件
1、我想删除远程目录下的所有文件
本地建立一个空目录 201209/17/
rsync --delete-before -a -H -v --progress --stats --password-file=/data/mypwddir/rsync.pwd /data/201209/17/ user@IP::module/201209/24/
这样就删除了远程的24号文件夹下的所有文件,据说用rsync删大批量文件比用rm要快很多。
2、我要删除远程单个文件(假设我要删掉rsync.pwd文件)
rsync -vd --exclude=rsync.pwd --filter="R rsync.pwd" --password-file=/data/mypwddir/rsync.pwd --filter="P *" --delete-excluded --existing --ignore-existing . user@ip::module
这样我们就把远程模块下的rsync.pwd文件删掉了
3、查看远程目录内容 站长教学网 eduyo.com
rsync -d --password-file=/data/mypwddir/rsync.pwd user@ip::module
4、传送目录(自定义目录,源目录和远程目录稍有不同)
说明,rsync命令后面的模块后只能跟一级目录,他不能创建多级目录,但同步可以同步多级
rsync -av --password-file=/data/mypwddir/rsync.pwd /data/www/201209/17 user@IP::module/201209/
这样我们就把201209/下17号目录里的内容同步到远端目录了,有人会说为什么不直接把201209全同步过去不是更简单,这里假设我们201209目录还有其它一些文件不想被同步,我们可以用这种方法。
(责任编辑:ken)