Я хочу синхронизировать файлы с моим локальным Linux-ящиком, но мне нужны только файлы, которые были созданы или изменены. в пределах последние 30 дней.
Я монтирую общий ресурс Windows из Linux с помощью этой команды:
mount -t cifs //Share/public /mnt/ntserver -o username=myuser,password='password',domain=sub.domain.com
Он монтируется правильно, и я могу установить его:
$ mount
//Share/public/ on /mnt/ntserver type cifs (rw,mand)
Из моих исследований кажется, что rsync не может сделать это в одиночку, но с помощью «find» это возможно.
Ниже команда находит только файлы, созданные или измененные ровно 30 дней назад (с -ctime 30), и не возвращает файлы для синхронизации.
cd /mnt/ntserver/documentation/ && find . -type f -ctime 30 | rsync -av --max-size=5m --include '*/' --include '*.xls*' --include '*.doc*' --include '*.pl' --include '*.sh' --include '*.sql' --include '*.txt' --include '*.vsd' --exclude '*' --files-from=- /mnt/ntserver/documentation /home/dan/cifs/
building file list ... done
sent 10 bytes received 12 bytes 2.93 bytes/sec
total size is 0 speedup is 0.00
Но если я изменю -ctime на 29, он найдет файлы:
cd /mnt/ntserver/documentation/ && find . -type f -ctime 29 | rsync -av --max-size=5m --include '*/' --include '*.xls*' --include '*.doc*' --include '*.pl' --include '*.sh' --include '*.sql' --include '*.txt' --include '*.vsd' --exclude '*' --files-from=- /mnt/ntserver/documentation /home/dan/cifs/
building file list ... done
doc1.xlsx
doc2.xlsx
doc3.xlsx
sent 6657515 bytes received 91 bytes 783247.76 bytes/sec
total size is 14039237 speedup is 2.11
Что я делаю не так? Почему он не находит все файлы, созданные / измененные за последние 30 дней?
Использовать -ctime -30
. Обратите внимание -30
, не просто 30
.