Назад | Перейти на главную страницу

Сценарий оболочки для ежедневного отчета об использовании диска

Я делаю резервные копии на своих локальных дисках. Диски смонтированы в папке / media. Теперь я хочу ежедневно запускать задание cron, которое сообщит мне в табличном формате, сколько диска используется определенными папками и сколько свободного места осталось на диске.

Было бы хорошо, если бы я мог вставить эту информацию в базу данных и видеть эту информацию через веб-страницу на locahost.

Я использую Ubuntu 10.04.

Если вам нужно место на разделах в виде таблицы, вы можете просто вызвать

df -h | column -t

Добавьте это в crontab со своим адресом электронной почты. Df -h | столбец -t

Этот однострочник перечислит каталоги верхнего уровня из каталога, в котором он выполняется, и напечатает их размеры, отсортированные в МБ. Вы можете настроить его на свой вкус.

for d in $(find . -maxdepth 1 -type d); do du -sm $d; done | sort -nk 1

Простые настройки,

  1. find /dir/path - сделает это для указанного каталога
  2. du может использоваться в других формах, это сводка в МБ
  3. Если в ваших каталогах есть пробелы, вы можете предварять их,
    (как было дополнительно очищено Dennis; спасибо за этот совет)
    IFS=$'\n';
    Я как-то привык к точным фильтрам, а не к подстановке; У Денниса есть еще идеи
  4. Ты можешь использовать sort -nrk 1 для сортировки вывода в порядке убывания размера
  5. Я пропустил добавление -mindepth 1 там,
    Когда вы добавите это, он пропустит отображение базового каталога (/dir/path и т. д.) размер в результатах

Другой ответ здесь, вероятно, даст вам хорошее представление о хранении этого в базах данных и отображении на веб-страницах. Я бы просто преобразовал его в файлы CSV и перечислил сводки с путем к файлу в браузере (но это может быть не слишком оптимальным для хранения и просмотра с большим количеством данных с течением времени).

[мета, запрос на редактирование: четвертый элемент отображается как 4 в предварительном просмотре, когда я редактирую этот ответ,
но говорит 1 в реальном времени. Кто-нибудь знает, что мне не хватает в этой уценке ?;
Это было исправлено, когда я удалил символы новой строки в пункте 3,
вам нужно будет взглянуть на более раннюю версию, чтобы понять, что я имею в виду ...]


Обновите основы (на основе вашего комментария):

  1. смотреть на используя терминал для обработки из командной строки с Ubuntu
  2. После запуска терминала
    Перейдите в интересующий каталог (попробуйте какой-нибудь образец каталога),
    (возможно, ваш профиль Firefox, например - cd ./mozilla)
    и, не пытайтесь слишком много делать в этом каталоге, вы можете сломать свой браузер.
  3. Теперь скопируйте первую строку for-loop как есть сверху и вставьте ее в командную строку этого терминала.
  4. нажмите Войти ключ
  5. посмотри на результат
  6. Еще одна ссылка, чтобы узнать больше о том, как использовать командную строку для «сценариев»,
    Учебники по Bash Shell в суперпользователе

Сообщите нам, какой уровень детализации вы хотите оттуда.

для хорошего столбчатого вывода используйте выходной формат POSIX, чтобы избежать ограниченного пространства при использовании удаленных сеансов с помощью pts /?

df -hP | столбец -t