Я использую Ubuntu 10.04 lts
Я ищу правильную командную строку для удаления всех файлов из папки / var / www / myfolder / pictures / каждые 30 дней.
Какую команду я должен применить к crontab -e?
Я также использую php5 на своем сервере.
Вы можете использовать find. Это найдет файлы старше 30 дней и удалит их
/usr/bin/find /var/www/myfolder/pictures/ -type f -mtime +30 -exec rm {} +
чтобы запустить его 2-го числа месяца в 12:30 из корневого crontab (используя crontab -l
как корень)
30 12 2 * * /usr/bin/find /var/www/myfolder/pictures/ -type f -mtime +30 -exec rm {} +
Поскольку вы используете ubuntu, вы также можете использовать /etc/cron.monthly/standard, который запускается на 52 6 1 * *
.
#!/bin/sh
# /etc/cron.monthly/standard: standard monthly maintenance script
# delete files older than 30 days from /var/www/myfolder/pictures/
/usr/bin/find /var/www/myfolder/pictures/ -type f -mtime +30 -exec rm {} +
Найди здесь своего друга.
find <path> -mtime +30 | xargs rm {}
Вы, вероятно, захотите провести некоторую проверку здравомыслия в сценарии, если вы собираетесь поместить это в сценарий.
Помимо поиска, если вы имеете в виду удаление файлов старше заданной даты, вы также можете использовать tmpwatch, который предназначен для удаления файлов, созданных или измененных после заданного времени.
tmpwatch --mtime 720 /path/to/dir
вы также можете сделать 30 дней вместо 720 (часов)
Чтение вашего фактического вопроса, хотя похоже, что вы хотите удалять все файлы каждые 30 дней, а не удалять файлы старше 30 дней, что не совсем то же самое.
Под 30 днями вы на самом деле имеете в виду один раз в месяц? Если это так, вы можете использовать @monthly в crontab и просто запустить rm для содержимого папок.
@monthly <user> rm /path/to/dir/*
Если нет, вы можете:
0 12 */30 * * <user> rm /path/to/dir/*
Или вы можете запустить tmpwatch из cron (но похоже, что вы также можете использовать cron для планирования и просто выполнить rm, это сэкономит время процессора, просто чтобы доказать, что все в каталоге действительно новое с момента последнего удалил все, что мне кажется избыточным). Вы должны начать