Linux: наводим порядок в хламных каталогах
2016-11-30 06:27:19

   Я тут заметил, что у меня постоянно какой-то бардак в каталоге "Загрузки". Причем просто выделить все и удалить — не лучшее решение, ибо там часто валяются всякие нужные вещи. Однако, там можно найти и всякую ересь, которую качал два года назад и вообще не помнишь что это. Я придумал себе следующую формулу: если не помнишь что это — значит оно точно уже не нужно и можно удалять и обозначил границу — месяц. То есть все, что старше месяца — удаляем. Аналогичная ситуация у меня была и в домашнем каталоге, правда, некоторое время назад, я взял себя в руки, разгреб там все и завел себе специальный каталог - ~/tmp/ в котором работаю с любыми файлами, которые, как мне сразу известно, я не буду хранить вечно. Например принесли пару фоток, мол, осветлить можешь? Ну могу. Их нужно куда-то положить, сразу удалять не нужно, мало ли, но и хранить их дольше месяца тоже смысла нет. В общем, задача ясна: есть пара каталогов и нужно автоматизировать удаление всего, что старше месяца из этих каталогов — приступим к реализации.

   Если еще не завел — заводи свой каталог под скрипты:

mkdir ~/.myscripts

   Создаем скрипт с непонятным названием:

touch ~/.myscripts/everyhour.sh

   Я так назвал скрипт, потому что планирую в будущем не только чистку каталогов в него запихнуть, но и, возможно, что-нибудь еще понадобится. А скрипт, настроенный на запуск каждый час, уже готов — вот будет хорошо: открыл скрипт, дописал что нужно, сохранил и всего делов-то.

   Наполним скрипт содержимым (я люблю nano, а ты — как хочешь):

nano ~/.myscripts/everyhour.sh

   

#!/bin/bash

   # уборка мусора (удаление файлов старше 30 дней) в каталоге Загрузки find /home/max/Загрузки -type f -mtime +30 -exec rm -f {} \; find /home/max/Загрузки -type d -mtime +30 -exec rm -f {} \;

   # то же самое в рабочем каталоге find /home/max/tmp -type f -mtime +30 -exec rm -f {} \; find /home/max/tmp -type d -mtime +30 -exec rm -f {} \;

(ну ты, если че, подредактируй имена каталогов под свои нужды. число 30 — это количество дней, в течении которых файл был никому не интересен)

   сохраняем, выходим. Нужно добавить скрипту права на выполнение:

chmod +x ~/.myscripts/everyhour.sh

   ну и прописать его в cron так, чтоб запускался каждый час:

crontab -e

   и в конец там дописать строчку:

0 * * * * ~/.myscripts/everyhour.sh

   Ну, собсна, — все. Теперь linux будет автоматически удалять старые файлы из рабочих каталогов. Лень — двигатель автоматизации! Всем пинга!

    Чтоб доказать что Вы не робот причините вред человеку или своим бездействием допустите, чтоб ему был причинен вред решите сложнейший пример:
    0 + 5 =
    Регистрация