84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
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