Я пытаюсь создать резервную копию каталога, расположение: / 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
Заранее спасибо.
Heh. Просто написал полный ответ, который сделал вещи намного более запутанными, чем они должны были быть. rsync
наиболее вероятный виновник здесь.
После вас rsync
попробуйте touch
ing $dest
. Синхронизация rsync
, скорее всего, изменит временную метку на $source
. Что касается исправления уже имеющихся, вы можете настроить ctime
, используя debugfs
, но для этого вам понадобится диск не смонтированный (на самом деле это невозможно, если у вас есть резервный диск в /root
, если только ваш корневой каталог не смонтирован отдельно).
Скорее всего, это поможет:
debugfs -w -R "set_inode_field /root/Backup/$var ctime $(дата +%s)". /dev/sdX
PS: Конвертированный ответ был потому, что я не видел rsync
, и подумал, что с назначением вашей системы ctime
происходит что-то нехорошее.