Istruzioni per l'utilizzo di cronjob per pianificare il riavvio automatico di Mysql quando il server è sovraccarico
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
1. Riavvia Mysql manualmente in caso di sovraccarico
MySQL potrebbe avere problemi quando esaurisce la memoria oa causa di qualche altro problema nel mio caso quando il server esegue molti siti diversi. Nella maggior parte dei casi, possiamo risolvere questo problema riavviando manualmente il servizio MySQL.
Per verificare se MySQL è in esecuzione, esegui il comando:
sudo service mysql status // kiểm tra trạng thái mysql
O:
sudo service mysqld status // kiểm tra trạng thái nếu sử dụng mariadb
Se lo stato di MySQL è disattivato, riavvia utilizzando la riga di comando:
sudo service mysql restart // hoặc sudo service mysqld restart
Se lo fai manualmente, è semplice, ma se il database è sovraccarico nel cuore della notte, quando dormiamo, l'accesso al sito verrà interrotto, questo è il problema, quindi come risolvere il problema questo?
Con linux/Centos, il sistema operativo ci fornisce la funzione Cron , che è un programmatore di lavoro di scripting automatico basato sul tempo per Linux in modo che possa eseguire gli script senza che noi li manipoliamo.
2. Creare uno script (script Bash) per riavviare MySQL
È possibile configurare cron per controllare automaticamente lo stato del server MySQL e riavviarlo in caso di arresto anomalo. Ovviamente, questa non è una soluzione permanente per il tuo squallido server MySQL, ma può farti risparmiare tempo fino a quando non potrai indagare ulteriormente.
Innanzitutto, dobbiamo creare un semplice script BASH e memorizzarlo nella home directory (o dove vuoi), quindi istruire cron per eseguire questo script BASH una volta al minuto.
Puoi inserire questo script ovunque, ma in questo esempio lo metteremo nella directory principale. oppure puoi usare bitvise per accedere al server e creare una cartella che simuli la tua riga di comando, quindi crea una cartella chiamata script
cd /root/ // change directory to root folder sudo mkdir scripts // make dir scripts with root permission
Vai alla cartella degli script e crea il file mysqlmon con nano tool (editor di dati sul terminale Linux), oppure usa bitvise per creare questo file
cd scripts sudo nano mysqlmon.sh
Inserisci questo codice nel file mysqlmon.sh appena creato a seconda che il tuo servizio sia mysql o 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 usi nano, salva ed esci (premi Ctrl + X , premi Y(yes) quindi premi invio)
Concedi l'autorizzazione di esecuzione allo script:
sudo chmod +x mysqlmon.sh
3. Controlla se il file di script che hai appena creato funziona correttamente
Esegui questo comando per eseguire il file di script appena creato:
sudo ./mysqlmon.sh
Se il servizio Mysql è ancora in esecuzione, il terminale visualizzerà la riga:
MySQL Service is running already. Nothing to do here.
Se vuoi vedere cosa succede quando lo script rileva se MySQL si arresta in modo anomalo, interrompi il servizio MySQL, tieni presente questo passaggio, il tuo server andrà temporaneamente in crash a causa dell'impossibilità di caricare il database:
sudo service mysql stop
Dopo l'interruzione, prova a eseguire di nuovo il file mysqlmon.sh appena creato per vedere se riconosce e riavvia mysql:
sudo ./mysqlmon.sh
Se eseguita correttamente, verrà visualizzata questa riga di testo
MySQL Service was down. Restarting now..
Controlla lo stato un'ultima volta per vedere se ha avuto successo:
sudo service mysql status
4. Automatizza l'esecuzione del file di script con cron
Crea file cron con nano o 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
Incolla questa riga di comando nel file 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
Salva il file cron per finire.
Nota, quando usi questo modo, non sarai in grado di trovare il comando cron con la riga di comando crontab -l , per vedere se il tuo comando viene riconosciuto usa la riga di 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 ...
Buona fortuna !