Я пишу небольшой небольшой скрипт, чтобы каждый день освобождать место на моем linux через CRON, если каталог кеша становится слишком большим.
Так как я очень хорошо разбираюсь в bash-скриптинге, мне понадобится небольшая помощь от вас, гуру Linux.
Вот в основном логика (псевдокод)
if ( Drive Space Left < 5GB )
{
change directory to '/home/user/lotsa_cache_files/'
if ( current working directory = '/home/user/lotsa_cache_files/')
{
delete files in /home/user/lotsa_cache_files/
}
}
Получение свободного места на диске
Я планирую освободить место на диске от команды '/ dev / sda5'.
Если возвращает мне следующее значение для вашей информации:
Filesystem 1K-blocks Used Available Use% Mounted on<br>
/dev/sda5 225981844 202987200 11330252 95% /
Так что может понадобиться небольшое регулярное выражение, чтобы получить '11330252' из возвращаемого значения
Немного паранойи
Часть 'if (текущий рабочий каталог = / home / user / lotsa_cache_files /)' - это всего лишь защитный механизм от паранойи внутри меня. Я хочу убедиться, что я действительно нахожусь в '/ home / user / lotsa_cache_files /', прежде чем я продолжу выполнение команды удаления, которая потенциально разрушительна, если текущий рабочий каталог по какой-то причине отсутствует.
Удаление файлов
Удаление файлов будет выполнено с помощью приведенной ниже команды вместо обычного rm -f:
find . -name "*" -print | xargs rm
Это связано с неспособностью систем linux 'rm' каталогить, если он содержит слишком много файлов, как я узнал ранее.