Копирование / изменение файлов, которые были изменены за последние 14 дней - PullRequest
4 голосов
/ 02 апреля 2012

У меня есть сервер, файлы которого время от времени изменяются.

Мы хотим иметь скрипт или задание cron, которое запускается каждые 7 дней и находит все php-файлы, которые были изменены или созданы впоследние 14 дней и помещает их в tar или zip-файл на сервере, чтобы его можно было загрузить.

Эта команда находит нужные файлы:

find . -name "*.php" -mtime -14 -print

Что еще мне нужносделать?

Ответы [ 2 ]

6 голосов
/ 02 апреля 2012

, если ваш список файлов из результатов поиска верен, просто передайте его в tar:

find . -name "*.php" -mtime -14 -print | xargs tar cvf backup.tar

Вы должны проверить параметры tar в man. Возможно, вы захотите использовать, например, -p (сохранить права), просто найдите в man полезные опции и используйте все, что вам нужно.

и добавить его в cron. Самый простой способ, если ваш дистрибутив поддерживает его, - поместить ваш скрипт в:

/etc/cron.weekly

В противном случае вам нужно изменить crontab:

crontab -e

и поместите туда строку вроде:

0 3 * * 6 <user> <your script>

он запускает скрипт в 3 часа ночи каждую субботу, последний скрипт - день недели, 0 или 7 - воскресенье.

человек 5 crontab:

 field          allowed values
          -----          --------------
          minute         0-59
          hour           0-23
          day of month   1-31
          month          1-12 (or names, see below)
          day of week    0-7 (0 or 7  is  Sun,  or  use
          names)
5 голосов
/ 03 апреля 2012

cron's good.

Возможно, вы захотите использовать GNU tar --files-from;xargs здесь опасенС xargs все в порядке, если известно, что число файлов всегда мало, но если список файлов становится большим, перезапуск tar с помощью xargs будет выполнять тост всех, кроме последних n файлов.

...