В MySQL 5 и выше, МЕТКА ВРЕМЕНИ значения преобразовываются от зоны текущего времени до UTC для устройства хранения данных и преобразовали назад от UTC до зоны текущего времени для извлечения. (Это происходит только для Типа данных timestamp, и не для других типов, таких как ДАТА И ВРЕМЯ.)
По умолчанию, зона текущего времени для каждого соединения является временем сервера. Часовой пояс может быть установлен на основе для каждого подключения, как описано в MySQL Server Time Zone Support .
Чтобы найти файлы, которые были последний раз изменены более пяти дней назад:
find /path/to/directory -type f -mtime +4
Одновременно удалить их ( сначала протестируйте вышеуказанное ): [ 1116]
find /path/to/directory -type f -mtime +4 -delete
Чтобы автоматизировать ежедневную работу, запустите crontab -e
(как пользователь, которому вы хотите выполнить эту задачу) и добавьте:
@daily find /path/to/directory -type f -mtime +4 -delete
Эксперимент, чтобы показать, какое значение mtime
вы хотите использовать. Руководство является мусором. Я предположил +5
, что мы хотели, но комментарий не согласился. Документация, кажется, конфликтует, поэтому я начал с создания трех файлов, каждый с интервалом в 1 день:
$ mkdir test
$ touch test/now
$ touch -d "1 day ago" test/yesterday
$ touch -d "2 days ago" test/day-before-yesterday
$ ls -l test
total 0
-rw-r--r-- 1 oli oli 0 Nov 26 13:12 day-before-yesterday
-rw-r--r-- 1 oli oli 0 Nov 28 13:11 now
-rw-r--r-- 1 oli oli 0 Nov 27 13:12 yesterday
Если мы хотим что-то точно в возрасте от 24 до 48 часов, мы используем 1 без знака. [1119 ]
$ find test -mtime 1
test/yesterday
Но если мы хотим что-то 24 часа +, +1
не работает:
$ find test -mtime +1
test/day-before-yesterday
+1
, кажется, означает «больше, чем показывает 1
» ... Так +0
используется:
$ find test -mtime +0
test/day-before-yesterday
test/yesterday
Все очень раздражает, если вы привыкли быть такими же, как я ... Но я выздоровею, я уверен. Спасибо за осколок от Адафона.
Вам нужно что-то вроде
@weekly find /tmp/test -type f -exec rm '{}' +
Примечание: просто rm -rf также удаляет папки. Вы можете добавить -mtime для времени модификации.
Должно ли это быть пять дней точно. Получите ваши любимые дни или время:
Минута - Час - День месяца - Месяц - День недели
0 3 0,5,10,15,20,25 * *
Что означает 3 часа ночи каждые пять дней, если месяц не равен 31 дням.
Да, вы можете использовать задания cron. Предположим, вам нужно удалить файлы в каталоге / tmp / test / через пять дней, а затем
crontab -e
добавить эти строки в последнюю
@weekly rm -fr /tmp/test/
Теперь папка будет удаляться еженедельно. Для получения дополнительной информации нажмите здесь