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 будет автоматически удалять старые файлы из рабочих каталогов. Лень — двигатель автоматизации! Всем пинга!

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