Я пытаюсь создать резервную копию каталога, расположение: /mnt/project/
один раз в 24 часа, и другой каталог внутри родительского каталога, расположение: /mnt/project/uploadDocuments/
каждые 3 часа с помощью cronjob.
Ниже представлены сценарии: Резервное копирование приложения ежедневно в полночь.
#!/bin/bash
var=$(date '+%d-%b-%Y')
source=/mnt/project/
mkdir /root/Backup/"$var"
dest=/root/Backup/"$var"/
rootdest=/root/Backup/
rsync -atu $source $dest;
загружать резервную копию документов ежедневно каждые 3 часа
#!/bin/bash
var=$(date '+%d-%b-%Y')
source=/mnt/project/uploadDocuments/
dest=/root/Backup/"$var"/uploadDocuments/
rsync -atu $source $dest;
Вышеупомянутые сценарии хорошо справляются с резервным копированием каталога, но я не могу написать сценарий автоматического удаления, потому что резервные копии каталогов хранят ту же ссылку на временную метку ниже: Ссылка
Поскольку каталоги имеют одинаковую метку времени, я не могу использовать следующую команду для автоматического удаления каталогов старше, чем, скажем, 7 или 10 дней:
find $rootdest -mindepth 1 -maxdepth 1 -type d -ctime +10 | xargs rm -rf
Заранее спасибо.
Хех. Просто написал полный ответ, который сделал вещи более запутанными, чем они должны были быть. rsync
является наиболее вероятным виновником здесь.
После Вас rsync
, пытаться touch
ing $dest
. В rsync
вероятно меняет метку времени на метку $source
.
Что касается исправления тех, которые уже есть, вы можете настроить ctime
с помощью debugfs
, но вам понадобится диск демонтированный для этого (это невозможно, если у вас есть резервный диск в /root
если ваш корневой каталог не смонтирован отдельно).
Скорее всего, это поможет:
debugfs -w -R "set_inode_field /root/Backup/$var ctime $(date +%s)" /dev/sdX
PS: запутанный ответ был потому, что я не видел rsync
в первую очередь, и подумал, что что-то не так с назначением вашей системе ctime
.