Удалите файлы с сервера Unix, когда продлите определенный лимит - PullRequest
0 голосов
/ 27 июня 2018

Я написал скрипт для извлечения данных об использовании с сервера Unix и отправки электронного письма для информирования моих коллег. Теперь я хочу вставить в оператор if блок, чтобы удалить некоторые файлы, которые старше двух дней +.

Я попытался удалить команду, но я немного потерян с пути (кстати, файлы хранятся на сервере Unix). Пожалуйста, найдите ниже мой код

    SPACE=$(df -P /data |tail -1 |awk '{print $5}' |cut -d '%' -f1)
echo $SPACE
if [ "$SPACE" -gt 75 ]; then
    echo "Warning you run out of space,Please delete from server" | mailx -r sender@mail.com -s "server_Data_Usage" receiver@mail.com
else
    echo "Enough space " | mailx -r sender@mail.com -s "server_Data_Usage" receiver@mail.com
fi  

Спасибо заранее, Панос

1 Ответ

0 голосов
/ 27 июня 2018

Привет, вы можете использовать команду find, чтобы сделать это легко, как показано ниже:

 find /data/ -mindepth 1 -type f -mtime +2 | xargs rm

В приведенной выше команде find выполнит поиск всех файлов в каталоге / data и выведет список файлов, которые старше на 2 дня, и по каналу перенаправит их на команду rm, которая навсегда удалит файлы.

Теперь вам нужно изменить ваш скрипт, как показано ниже: -

SPACE=$(df -P /data |tail -1 |awk '{print $5}' |cut -d '%' -f1)
echo $SPACE
if [ "$SPACE" -gt 75 ]; then
    echo "Warning you run out of space,Please delete from server" | mailx -r   sender@mail.com -s "server_Data_Usage" receiver@mail.com
    find /data/ -mindepth 1 -type f -mtime +2 | xargs rm
else
    echo "Enough space " | mailx -r sender@mail.com -s "server_Data_Usage" receiver@mail.com
fi  

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...