Heim > Artikel > Backend-Entwicklung > Die automatische Datenbanksicherung von Linux schlägt fehl
Shell
dbbackup.sh:
<code>mysqldump -uname -ppassword dbname | gzip > /www/web/mysqlbackup/xiangyanghua`date +%Y-%m-%d_%H%M%S`.sql.gz </code>
crontab
<code>37 22 * * * root /www/web/mysqlbackup/dbbackup.sh</code>
Bitte sagen Sie mir, was los ist.
Shell
dbbackup.sh:
<code>mysqldump -uname -ppassword dbname | gzip > /www/web/mysqlbackup/xiangyanghua`date +%Y-%m-%d_%H%M%S`.sql.gz </code>
crontab
<code>37 22 * * * root /www/web/mysqlbackup/dbbackup.sh</code>
Bitte sagen Sie mir, wo das Problem liegt.
1. Führen Sie den Befehl direkt aus, Sie müssen ihn nicht ausführen
2. Ist der Crontab-Dienst aktiviert?
1 Die Crontab-Aufgabe wird mit der aktuellen Benutzeridentität ausgeführt. Das Hinzufügen von Root ist nutzlos.
2 Führen Sie den Befehl manuell aus, um zu sehen, ob er erfolgreich ist oder ob andere Fehler vorliegen Protokollieren Sie den Inhalt im dbbackup.sh-Skript und geben Sie ihn in die Datei aus, indem Sie beispielsweise
an die Start- und Endzeilen hinzufügen.
<code>echo $(date)--start >> /tmp/xxx.log </code>4 Fügen Sie die Standardausgabe und die Fehlerausgabe der Ausführung zur Crontab-Aufgabe hinzu.
<code>37 22 * * * /www/web/mysqlbackup/dbbackup.sh > /tmp/dbback.log 2>&1 </code>6 Wenn mysqldump von der Quelle installiert wird, müssen Sie darauf achten, dass die Pfadumgebungsvariable Crontab den Pfad möglicherweise nicht lesen kann, daher sollte der absolute Pfad in das Skript geschrieben werden mysqldump;