Ручная очистка диска

Каким бы большим не был жёсткий диск, место на нём конечно, и если заранее не принять мер, рано или поздно оно закончится. Самое страшное, что может произойти после этого - это невозможность работы системы или потеря самых старых данных сохранённых в системе.

Примечание

Для предотвращения данной ситуации заранее планируйте необходимый объем жёсткого диска, исходя из количества клиентских машин, того, что конкретно на них собирается и сроков хранения данных.

../_images/faq_disk_clean.png

В административной панели можно выставить настройки автоочистки.

Также можно провести очистку диска вручную. Для этого:

  1. Остановите сервер staffcop командой:

sudo service staffcop stop
  1. Проверьте доступное место на диске:

df -h
  1. Удалите записи в логах

sudo rm /var/log/*gz
  1. Удалите старые базы Staffcop:

4.1 Откройте файл скрипта compact, являющегося частью Staffcop:

sudo nano /usr/share/staffcop/bin/compact

4.2 В открывшемся файле раскомментируйте строки echo «Vacuum database» и sudo -u postgres psql staffcop -c «vacuum full». Итоговый файл будет иметь следующий вид:

#!/bin/bash
# USE compact
# HELP Cleanup unreffered dimensions and vaccum database
staffcop stop
echo "Cleanup dimensions"
cat sql/cleanup_dimensions.sql| bin/sql
echo "Vacuum database"
sudo -u postgres psql staffcop -c "vacuum full"
staffcop start
echo "Cleanup done"
bin/info

4.3 Сохраните изменения.

4.4 Очистите старые записи в базе:

sudo staffcop cleanup X

здесь Х - это число дней, данные за которые нужно оставить.

4.5 Запустите скрипт:

staffcop compact

Примечание

Оптимальным запасом для обеспечения производительной работы механизма очистки базы будет наличие свободного места на диске (15% от размера текущей базы).

В случае, если диск забит «под завязку», возможны проблемы с удалением. В этом случае есть обходной способ, позволяющий очистить диск.

sudo tune2fs -m 0 /dev/sdX

Эта команда позволяет освободить зарезервированную для системных нужд часть диска. После этого нужно выполнить описанную выше последовательность действий по очистке. Далее нужно вернуть суперпользователю его резерв дискового пространства. Для этого следует выполнить следующую команду:

sudo tune2fs -m 5 /dev/sdX

Если эта команда не будет выполнена, то при неправильных настройках есть вероятность занятия всего жёсткого диска, включая 5% суперпользователя.

Примечание

Обязательно возвращайте 5% резерв, 5% резерва это общепринятая стандартная практика.

После очистки диска нужно вновь запустить staffcop командой

sudo service staffcop start