Я в настоящее время настраиваю веб-сайт включая CMS, который имеет миллионы активов. Меньшие и большие изображения главным образом. Я хотел бы скопировать эти файлы регулярно. Например, еженедельно. Мне смонтировали FTP к моей машине, к которой я могу скопировать в. Вчера я думал об использовании rsync и просто скопировал только новые файлы. Но это, кажется, берет немного, очень хотят, чтобы rsync проверил через все файлы. В основном это берет возрасты, потому что устройство хранения данных FTP является поганым. Таким образом, я закончил с идеей найти только последнее измененным (продержитесь 24-й), файлы в моем каталоге активов и копируют их в FTP. Минимизировать нагрузку на FTP. Но я являюсь новым для избиения сценариев, конечно, Google уже помог мне, и я придумал следующие части:
#!/bin/bash
Source="/my/source/folder"
Destination="/my/slow/ftp/"
ls find $Source -mtime -1 -ls
do
cp -a $Source $Destination
done
Что я пропускаю? Можно ли помочь мне закончить его?
Если моя идея создать резервную копию дельты не оптимальна, не стесняйтесь предлагать что-то еще.
Можно сделать, это использование того идет find
.
Для задач как это, где точность времени необходима, используйте -mmin
опция find
для выражения ограничения времени в минутах вместо -mtime
для выражения в течение многих дней.
find /source -mmin -1441 -exec cp -a -t /destination {} +
Это скопирует файлы, измененные в течение прошлых 24 часов (1 440 минут) рассчитывающий с этого времени, от /source
до /destination
.
Для копирования в удаленный сервер используйте rsync
, поскольку он возобновит любую частичную передачу (в отличие от этого scp
):
find /source -mmin -1441 -exec rsync -a {} user@host:/destination/ \;