Instruções para usar o cronjob para agendar a reinicialização automática do Mysql quando o servidor estiver sobrecarregado
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
1. Reinicie o Mysql manualmente quando sobrecarregado
O MySQL pode ter problemas quando fica sem memória ou por causa de algum outro problema no meu caso quando o servidor executa muitos sites diferentes. Na maioria dos casos, podemos resolver esse problema reiniciando manualmente o serviço MySQL.
Para verificar se o MySQL está em execução, execute o comando:
sudo service mysql status // kiểm tra trạng thái mysql
Ou:
sudo service mysqld status // kiểm tra trạng thái nếu sử dụng mariadb
Se o estado do MySQL estiver desativado, reinicie usando a linha de comando:
sudo service mysql restart // hoặc sudo service mysqld restart
Se você fizer manualmente, é simples, mas se o banco de dados estiver sobrecarregado no meio da noite, quando estivermos dormindo, o acesso ao site será interrompido, esse é o problema, então como resolver o problema?
Com o linux/Centos, o sistema operacional nos fornece o recurso Cron , que é um agendador de tarefas de script automático baseado em tempo para Linux para que ele possa executar os scripts sem que nós os manipulemos.
2. Crie um script (script Bash) para reiniciar o MySQL
Você pode configurar o cron para verificar automaticamente o status do servidor MySQL e reiniciá-lo se ele travar. Claro, isso não é uma correção permanente para o seu servidor MySQL sujo, mas pode economizar seu tempo até que você possa investigar mais.
Primeiro, precisamos criar um script BASH simples e armazená-lo no diretório inicial (ou onde você quiser), depois instruir o cron a executar esse script BASH uma vez por minuto.
Você pode colocar esse script em qualquer lugar, mas neste exemplo, vamos colocá-lo no diretório raiz. ou, você pode usar o bitvise para acessar o servidor e criar uma pasta que simule sua linha de comando, em seguida, crie uma pasta chamada scripts
cd /root/ // change directory to root folder sudo mkdir scripts // make dir scripts with root permission
Vá para a pasta scripts e crie o arquivo mysqlmon com a ferramenta nano (editor de dados no terminal linux), ou use o bitvise para criar este arquivo
cd scripts sudo nano mysqlmon.sh
Insira este código no arquivo mysqlmon.sh recém-criado dependendo se seu serviço é mysql ou mysqld:
#!/bin/bash # Check if MySQL is running sudo service mysql status > /dev/null 2>&1 # Restart the MySQL service if it's not running. if [ $? != 0 ]; then echo -e "MySQL Service was down. Restarting now...n" sudo service mysql restart else echo -e "MySQL Service is running already. Nothing to do here.n" fi // sử dụng 1 trong 2 đoạn code này phù hợp server của bạn, chỉ khác nhau mysql và mysqld #!/bin/bash # Check if MySQL is running sudo service mysqld status > /dev/null 2>&1 # Restart the MySQL service if it's not running. if [ $? != 0 ]; then echo -e "MySQL Service was down. Restarting now...n" sudo service mysqld restart else echo -e "MySQL Service is running already. Nothing to do here.n" fi
Se estiver usando nano, salve e saia (pressione Ctrl + X , pressione Y (sim) e pressione enter)
Conceda permissão de execução ao script:
sudo chmod +x mysqlmon.sh
3. Verifique se o arquivo de script que você acabou de criar está funcionando corretamente
Execute este comando para executar o arquivo de script recém-criado:
sudo ./mysqlmon.sh
Se o serviço Mysql ainda estiver em execução, o terminal exibirá a linha:
MySQL Service is running already. Nothing to do here.
Se você quiser ver o que acontece quando o script detecta se o MySQL trava, pare o serviço MySQL, lembre-se deste passo, seu servidor travará temporariamente por não conseguir carregar o banco de dados:
sudo service mysql stop
Depois de parar, tente executar o arquivo mysqlmon.sh que você acabou de criar novamente para ver se ele reconhece e reinicia o mysql:
sudo ./mysqlmon.sh
Se executado corretamente, esta linha de texto será exibida
MySQL Service was down. Restarting now..
Verifique o status uma última vez para ver se foi bem-sucedido:
sudo service mysql status
4. Automatize a execução do arquivo de script com o cron
Crie arquivos cron com nano ou bitvise:
cd ~ cd /etc/cron.d // chuyển tơi thư mục etc/cron.d nano -w auto_restart // khởi tạo file auto_restart với trình biên tập nano
Cole esta linha de comando no arquivo auto_restart
*/1 * * * * root /root/scripts/mysqlmon.sh >/dev/null 2>&1 // chạy file này 1 phút 1 lần, tăng số 1 lên nhiều nếu bạn muốn thời gian tự động chạy lâu hơn
Salve o arquivo cron para finalizar.
Observe que, ao usar dessa maneira, você não poderá encontrar o comando cron com a linha de comando crontab -l , para ver se seu comando é reconhecido, use a linha de comando:
head -n -0 /var/spool/cron/* /etc/crontab /etc/cron.d/* // xem các kịch bản tự động chạy trong thư mục cron.d ls /etc/cron.{hourly,daily,weekly,monthly}/ // xem các file cron tự động chạy trong các thư mục cron theo giờ, ngày, tuần, tháng ...
Boa sorte !