На сервере с Ubuntu хостится сайт. Раз в две недели стабильно падает с ошибкой
SQLSTATE[HY000]: General error: 1 Can't create/write to file '/tmp/#sql_3f0_0.MYD' (Errcode: 28)
Я так понимаю, что забивается папка /tmp. Причем перезапуск VPS не помогает. Только rm -r /tmp
Можно как-нибудь регулировать подобное поведение, чтобы предотвратить падение сайта?
root@185:/home/admin# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda3 29G 21G 6.1G 78% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 492M 4.0K 492M 1% /dev
tmpfs 101M 384K 100M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 501M 0 501M 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvda1 190M 184M 0 100% /boot
root@185:/home/admin# df -h tmp
Filesystem Size Used Avail Use% Mounted on
/dev/xvda3 29G 21G 6.1G 78% /
root@185:/home/admin#
из комментария:
$ stat -c '%A' /tmp
drwxrwxrwx
Ответ
$ stat -c '%A' /tmp
drwxrwxrwx
это неправильно для каталога /tmp. из man chmod
this is called the restricted deletion flag for the directory, and is commonly found on world-writable directories like /tmp
добавьте флаг restricted deletion
$ sudo chmod +t /tmp
я не уверен в том, что именно в этом проблема, но «зацепили» слова про «помогает только удаление /tmp» и отсутствие упоминания про то, каким образом каталог воссоздаётся.
в общем и целом я бы порекомендовал для выявления проблемы начать с мониторинга свободного пространства на разделе, где находится каталог /tmp. как-нибудь так (раз в пол-часа добавляется строчка с датой и выводом программы df в файл ~/mm):
$ while true; do sleep 1800; { echo -n "$(\date) "; df /tmp | tail -n 1; } >> ~/mm; done
команду эту лучше, конечно, запустить в сеансе screen-а (или tmux-а), чтобы она не прервалась при обрыве связи с сервером.
Комментариев нет:
Отправить комментарий