Автоматическая очистка каталога (Linux и Windows)
2017-12-03 06:40:25

   Смеркалось. В мой любимый дистрибутив линукса пришел северный полярный лис systemd и после долгой агонии он окончательно сдох у меня на десктопе. Поставил Devuan — не нарадуюсь. Однако, пришлось некторые вещи, которые были сто лет настроены и работали, настраивать заново. Среди этих вещей задача автоматической очистки каталогов от мусора.

   Дело вот в чем: когда скачиваешь из интернета файл, то сразу удалять его не хочется: мало ли? Вдруг я щас с ним что-то не то сделаю и придется заново использовать? Или еще кому пригодится (и регулярно пригождается). В общем, за годы выработалась привычка сразу не удалять. А через некоторое время забываешь. Это приводит к тому, что каталог с загрузками замусоривается и приходится периодически наводить в нем порядок: просматривать что лежит и удалять/не удалять содержимое. Эту задачу можно автоматизировать, что я и сделал, классическим для линуксов способом — написанием bash-скрипта. Однако, после N-ного времени эксплуатации того решения, у меня появились к нему вопросы и я решил переделать.

   Использование PHP в качестве скриптового языка системного назначения (а не для генерации веб-страниц) может показаться странным, но имеет ряд преимуществ, на мой мутный взгляд. Самое первое — читаемость. BASH странный: можешь сравнить, если не лень, как читается новый скрипт и как читается скрипт на bash-е, который выполняет аналогичную задачу.

   Самое второе — универсальность. В этом нашем PHP реализован хренов килограмм много своих собственных функций, которые системонезависимы и на разных платформах будут работать. Например скрипт, который я написал, вродь как, для линукса, на мой мутный взгляд, будет работать и под Windows (не говоря уже о прочих BSD-ях)

   Собственно, вот мое творение: скрипт на РНР автоматическое удаление старых файлов

   В прошлый раз, для организации периодического запуска скрипта мы настраивали cron. В этот раз поступим проще: в каталоге /etc/ есть специальные каталоги с непонятными названиями:

$ ls /etc/ | grep cron
anacrontab
cron.d
cron.daily
cron.hourly
cron.monthly
crontab
cron.weekly

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

# cp ./remove_old_files.php /etc/cron.daily/

   Вот тут можно скачать скрипт, о котором речь. Всем пинга.

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