Perché di recente stavo configurando backup per un NextCloud ad esempio, ho pensato che sarebbe stata una buona idea scrivere un tutorial aggiuntivo su come eseguire un MySQLdump senza password in Cronjob. Il problema con i dump di MySQL è che se esegui il comando senza fornire un file di password, ti chiederà sempre di inserire la tua password. Sarebbe difficile se volessi eseguire quel comando in un Cronjob .
Il processo è abbastanza semplice e veloce, quindi ti guiderò attraverso ogni passaggio.
Passaggio 1:creazione/modifica del file my.cnf
In alcuni casi questo file è già a posto, altrimenti lo crei semplicemente.
sudo nano ~/.my.cnf
E ora incolla semplicemente le seguenti righe, regolandole per contenere il tuo nome utente e password, ovviamente.
[mysqldump] user = mysqluser password = yourpassword
Nel caso in cui il file esista già e contenga dati, incolla quelle 3 righe proprio sotto di esso.
Passaggio 2:regolazione delle autorizzazioni
Ora dobbiamo modificare i permessi.
chmod 600 ~/.my.cnf
Passaggio 3:creazione del Cronjob
Ora creeremo il Cronjob. Se vuoi imparare le basi del funzionamento di Cronjobs, dai un'occhiata al mio tutorial completo su di esso.
Per modificare il file Crontab esegui:
crontab -e
E per eseguire il MySQL Dump ogni giorno alle 21:00 aggiungi la seguente riga in fondo. Per sapere come funzionano i tempi, dai un'occhiata al mio altro tutorial.
0 21 * * * mysqldump -u mysqluser -h localhost – all-databases | gzip -9 > mysqldbbackup.sql.gz > /dev/null
Passaggio 4 (facoltativo):eseguire manualmente MySQL Dump
Se vuoi eseguire direttamente MySQL Dump, esegui semplicemente:
mysqldump – single-transaction -h localhost -u mysqluser > /usr/share/mysqlbackups/mysqldbbackup.sql
E il gioco è fatto. Ecco come eseguire MySQLdump senza password in Cronjob.