Movatterモバイル変換


[0]ホーム

URL:


Skip to content
Search Gists
Sign in Sign up

Instantly share code, notes, and snippets.

@maximal
Last activeNovember 26, 2019 09:29
    • Star(0)You must be signed in to star a gist
    • Fork(0)You must be signed in to fork a gist
    Save maximal/b2626f95da47ddebecdab6db5f14a12c to your computer and use it in GitHub Desktop.
    Скрипт для проверки свободного места на диске
    <?php
    /**
    * Скрипт для проверки свободного места на диске.
    *
    * Запуск в кроне (каждый день в 7 утра):
    * ```
    * 0 7 * * * php /path/to/check-disk-space.php
    * ```
    *
    * @author MaximAL
    * @date 2019-11-26
    * @time 11:43
    * @since 2019-11-26 Первая версия.
    *
    * @copyright ©  MaximAL, Sijeko 2019
    * @link https://maximals.ru
    * @link https://sijeko.ru
    */
    // Разделы, которые проверяем
    $partitions = [
    '/',
    '/home',
    '/srv',
    '/run',
    ];
    // Порог, меньше которого шлём уведомление
    $gbMin =5;
    // Выводить ли сообщение в консоль (чтобы его отослал cron с использованием MAILTO)
    $textOut =true;
    // Отправлять ли сообщение самостоятельно (функцией `mail()`)
    $mailSend =true;
    // Получатели письма
    $mailTo ='admin@example.org, maximal@example.org';
    // Тема письма (добавляем к нему имя сервера)
    $mailSubject ='[' .gethostname() .'] Мало места на диске';
    // Начальный текст письма
    $mailHeader =
    'В этих разделах сервера `' .gethostname() .
    '` осталось меньше' .$gbMin .' ГиБ свободного места:';
    // Поехали!
    $timeStart =microtime(true);
    $alerts = [];
    foreach ($partitionsas$partition) {
    $gBytes =disk_free_space($partition) /1024.0 /1024.0 /1024.0;
    if ($gBytes <$gbMin) {
    $alerts []='*' .$partition .':' .round($gBytes,1) .' ГиБ';
    }
    }
    if (count($alerts)) {
    $message =$mailHeader .PHP_EOL .implode(PHP_EOL,$alerts) .PHP_EOL;
    if ($mailSend) {
    mail($mailTo,$mailSubject,$message);
    }
    if ($textOut) {
    echo$message;
    }
    }
    $timeDiff =microtime(true) -$timeStart;
    //echo 'Time: ', sprintf('%.3f sec.', $timeDiff), PHP_EOL;
    @pilotmt10
    Copy link

    Красота! 😍

    Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

    [8]ページ先頭

    ©2009-2025 Movatter.jp