FIELD LINE
Администратор
- Регистрация
- 11 Июн 2017
- Сообщения
- 73
- Симпатии
- 69
- Пол
- Мужской
В данной статье рассмотрим возможность автоматического удаления логов из нужных директорий на вашем vds или выделенном Linux сервере.
Допустим, вы хотите что бы раз в сутки удалялись все логи у определенного пользователя, а в нужных каталогах назначались рекурсивные права на запись от нужного пользователя. Можно сделать так, что бы это происходило автоматически раз в сутки.
В примере показано как чистить все логи на сервере из папки /home/ у пользователя user ровно раз в сутки.
Допустим, у пользователя user имеется 2 сервера hlds и еще что то в каталоге. У первого сервера имя каталога hlds1, у второго сервера имя каталога hlds2.
Настройка:
1) Создайте в папке /home/user/ файл remove_logs.sh
2) Вставьте туда следующее содержимое:
3) Назначьте права на скрипт:
4) Сохраняйте изменения.
Вопрос: Что такое chown -R user:user ?
Ответ: Это рекурсивное назначение прав определенного пользователя на файлы и каталоги. В данном случае на 2 каталога hlds1 и hlds2 назначаются рекурсивные права от пользователя user.
Теперь все логи будут удаляться у данного пользователя, а на указанные каталоги hlds1 и hlds2 будут назначаться рекурсивно права от пользователя, что бы права записи не сбились, так как директории постоянно исполняемы. Далее перейдем к процессу автоматизации.
Как добавить задачу в cron, что бы раз в в сутки выполнялись указанные операции в скрипте remove_logs.sh?
Настройка crontab:
1) Введите в терминал команду nano /etc/crontab
2) Вставьте туда следующее в самый конец:
3) Сохраняйте изменения.
Теперь у пользователя user чистятся все логи ровно раз в сутки в 23:59:01 , а на файлы игровых серверов данного пользователя назначаются рекурсивные права записи. На этом установка закончена.
Проверить работу можно командой dmesg в терминале. Вы увидите примерно следующее содержимое:
Приятной работы.
Допустим, вы хотите что бы раз в сутки удалялись все логи у определенного пользователя, а в нужных каталогах назначались рекурсивные права на запись от нужного пользователя. Можно сделать так, что бы это происходило автоматически раз в сутки.
В примере показано как чистить все логи на сервере из папки /home/ у пользователя user ровно раз в сутки.
Получается, что данный пример показывает как чистить логи в нужных директории в /home/user/, а если точнее, то у пользователя user
Допустим, у пользователя user имеется 2 сервера hlds и еще что то в каталоге. У первого сервера имя каталога hlds1, у второго сервера имя каталога hlds2.
Настройка:
1) Создайте в папке /home/user/ файл remove_logs.sh
Это можно сделать командой nano /home/user/remove_logs.sh
Код:
echo sheduled task [`date`]: Clearing game logs > /dev/kmsg
find /home/user -type f -name "*.log" -delete
chown -R user:user /home/user/hlds1/
chown -R user:user /home/user/hlds2/
Код:
chmod +x remove_logs.sh
Вопрос: Что такое chown -R user:user ?
Ответ: Это рекурсивное назначение прав определенного пользователя на файлы и каталоги. В данном случае на 2 каталога hlds1 и hlds2 назначаются рекурсивные права от пользователя user.
Теперь все логи будут удаляться у данного пользователя, а на указанные каталоги hlds1 и hlds2 будут назначаться рекурсивно права от пользователя, что бы права записи не сбились, так как директории постоянно исполняемы. Далее перейдем к процессу автоматизации.
Как добавить задачу в cron, что бы раз в в сутки выполнялись указанные операции в скрипте remove_logs.sh?
Настройка crontab:
1) Введите в терминал команду nano /etc/crontab
2) Вставьте туда следующее в самый конец:
Код:
59 23 * * * root /home/user/remove_logs.sh
Теперь у пользователя user чистятся все логи ровно раз в сутки в 23:59:01 , а на файлы игровых серверов данного пользователя назначаются рекурсивные права записи. На этом установка закончена.
Проверить работу можно командой dmesg в терминале. Вы увидите примерно следующее содержимое:
Код:
sheduled task [Вс ноя 19 23:59:01 MSK 2017]: Clearing game logs