Я - полный нуб в Linux, но я начинаю понимать это. У меня Ubuntu Server 16.04 работает FTP-сервер для резервного копирования видео файлов безопасности. Файлы будут храниться в таких папках, как: /home/securityfolder1
, /home/securityfolder2
, /home/securityfolder3
и т. Д.
Обратите внимание, что каждый securityfolderN
является отдельным пользователем.
Поскольку я не хочу, чтобы мои жесткие диски были заполнены постоянно, я хочу ежедневно удалять файлы из этих папок старше 7 дней.
Во-первых, эта команда найдет и удалит все файлы, более старые, чем 7 дней в любом подкаталоге в /home
чье имя запускается с securityuser
:
find /home/securityuser* -mtime +6 -type f -delete
Вам нужно -mtime +6
и нет +7
потому что -mtime
считает 24-е периоды. Как объяснено в -atime
раздел man find
(-mtime
работы таким же образом):
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
Так, для нахождения файла, который был изменен 7 или больше дней назад необходимо найти файлы, которые были изменены больше чем 6 дней назад, следовательно -mtime +6
.
Следующий шаг должен иметь эту команду, выполненную один раз в день. Начиная с каждого securityuserN
другой пользователь (Вы могли бы хотеть заново продумать ту установку, она делает все более сложным), это должно быть выполнено как корень. Так, редактирование /etc/crontab
:
sudo nano /etc/crontab
И добавьте эту строку:
@daily root find /home/securityuser* -mtime +6 -type f -delete
Это будет работать find
управляйте один раз в день и удалите файлы.
согласно мне мое знание:
попытка find
команда как это:
find ./dirc/* -mtime +6 -type f -delete
./dirc/* : is your directory (Path)
-mtime +6 : modified more than 6 days ago (therefore, at least 7 days ago)
-type f : only files
-delete : no surprise. Remove it to test before like rm