84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
Linux 如何保持两个文件夹内容一致 ?
比如
~/dock1 ~/dock2
要保证完全一致 ...
软连接是不行的好像
小伙看你根骨奇佳,潜力无限,来学PHP伐。
rsync + inotify
感觉你应该为了自动备份吧,如果是平时自己的代码文件之类的,我一般都是在关键的时候手动备份,也简单,就直接执行一下cp -r,自动备份有个问题就是不知道什么时候应该备份,比如10分钟给你备份了,但是实际上你想回到1小时之前,怎么办,所以我还是喜欢手动备份,毕竟也简单。 另外如果你只是要比较两个文件夹是否完全一致的话,我写了一个工具
sh#!/usr/bin/env bash # 比较两个文件夹是否一致 # 计算每个文件文件的md5值,将所有的md5值写入一个文件中,最后再用md5比较这个文件是否一样 # mac系统下计算md5的值命令是md5,如果是linux,请换成md5sum # 用法:sh is_same.sh dir1 dir2 if [[ $# != 2 ]]; then echo "usage: sh is_same.sh <dir1> <dir2>" exit 1 fi # find查找文件,md5计算md5值,awk取出md5值,sort保证次序是一致的,将结果输出到文件中 find $1 -type f -print | grep -v dir*.md5 | xargs md5 | awk '{print $NF}' | sort > temp.dir1.md5 find $2 -type f -print | grep -v dir*.md5 | xargs md5 | awk '{print $NF}' | sort > temp.dir2.md5 # 比较两个文件是否相同,如果相同说明两个目录是一致的 md5sum1=$(md5 temp.dir1.md5 | awk '{print $NF}') md5sum2=$(md5 temp.dir2.md5 | awk '{print $NF}') if [[ $md5sum1 != $md5sum2 ]]; then echo "$1 and $2 is different" else echo "$1 and $2 is same" fi # 删除临时文件 rm temp.dir1.md5 rm temp.dir2.md5
sh
#!/usr/bin/env bash # 比较两个文件夹是否一致 # 计算每个文件文件的md5值,将所有的md5值写入一个文件中,最后再用md5比较这个文件是否一样 # mac系统下计算md5的值命令是md5,如果是linux,请换成md5sum # 用法:sh is_same.sh dir1 dir2 if [[ $# != 2 ]]; then echo "usage: sh is_same.sh <dir1> <dir2>" exit 1 fi # find查找文件,md5计算md5值,awk取出md5值,sort保证次序是一致的,将结果输出到文件中 find $1 -type f -print | grep -v dir*.md5 | xargs md5 | awk '{print $NF}' | sort > temp.dir1.md5 find $2 -type f -print | grep -v dir*.md5 | xargs md5 | awk '{print $NF}' | sort > temp.dir2.md5 # 比较两个文件是否相同,如果相同说明两个目录是一致的 md5sum1=$(md5 temp.dir1.md5 | awk '{print $NF}') md5sum2=$(md5 temp.dir2.md5 | awk '{print $NF}') if [[ $md5sum1 != $md5sum2 ]]; then echo "$1 and $2 is different" else echo "$1 and $2 is same" fi # 删除临时文件 rm temp.dir1.md5 rm temp.dir2.md5
crontab+rsync
两个文件夹都在本地时,如果一个为主,一个为辅,那么应该是可以用inotify + rsync
另外,其实可以你考虑bit torrent sync或者syncthing,当然这个主要是用在不在同一个台机器上时使用的
写个同步脚本吧,放到crontab里
如果是文件的话可以用硬链接
其实我只想问,这个需求是干嘛的...
之前为了Dropbox,用了junction,只是为了链接
rsync杠杠的
rsync +1 cron +1
rsync + inotify
感觉你应该为了自动备份吧,如果是平时自己的代码文件之类的,我一般都是在关键的时候手动备份,也简单,就直接执行一下cp -r,自动备份有个问题就是不知道什么时候应该备份,比如10分钟给你备份了,但是实际上你想回到1小时之前,怎么办,所以我还是喜欢手动备份,毕竟也简单。
另外如果你只是要比较两个文件夹是否完全一致的话,我写了一个工具
crontab+rsync
两个文件夹都在本地时,如果一个为主,一个为辅,那么应该是可以用inotify + rsync
另外,其实可以你考虑bit torrent sync或者syncthing,当然这个主要是用在不在同一个台机器上时使用的
写个同步脚本吧,放到crontab里
如果是文件的话可以用硬链接
其实我只想问,这个需求是干嘛的...
之前为了Dropbox,用了junction,只是为了链接
rsync杠杠的
rsync +1
cron +1