毎日データベースをバックアップするためにcronジョブを設定しようとしています。これは私がcrontabファイルに書いたものです:
25 18 * * * root mysqldump -u root -p myPassWord --all-databases | gzip > /var/backup/database_`date '+%m-%d-%Y'`.sql.gz
18:25に何も起こらなかったので、私の/var/log/syslog
ファイル(サーバーはDebianにあります)を確認したところ、次のことがわかりました。
Jan 24 18:25:01 ns311475 /USR/SBIN/CRON[16252]: (root) CMD (/usr/local/ispconfig/server/server.sh 2>&1 > /dev/null | while read line; do echo `/bin/date` "$line" >> /var/log/ispconfig/cron.log; done)
Jan 24 18:25:01 ns311475 /USR/SBIN/CRON[16253]: (getmail) CMD (/usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null)
Jan 24 18:25:01 ns311475 dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, secured, session=<3xFlL2kNAAB/AAAB>
Jan 24 18:25:01 ns311475 dovecot: pop3-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, secured, session=<rhRlL2kNvwB/AAAB>
Jan 24 18:25:01 ns311475 postfix/smtpd[16279]: connect from localhost.localdomain[127.0.0.1]
Jan 24 18:25:01 ns311475 postfix/smtpd[16279]: lost connection after CONNECT from localhost.localdomain[127.0.0.1]
Jan 24 18:25:01 ns311475 postfix/smtpd[16279]: disconnect from localhost.localdomain[127.0.0.1]
最初の行がわかりません。残りは質問を電子メールで送信しようとしているようですが、何も得られません。
答え1
良いマニュアルを読んでください::man 5 crontab
そこで「%」がcronに特別な意味を持っていることがわかります。
これは意図したコマンドを中断します。
それ以外に、これはmySQLのバックアップを開始する非常に悪い方法です。
- ルートDBパスワードは、すべてのローカルユーザーまたはsnmp読み取りアクセス権を持つすべてのユーザーが表示できるプロセスのリストに表示されます。
- 明らかな理由なく、シェル内でサブシェルを起動しないでください。代わりに "$(command)" を使用してください。
- gzipは1つのCPUのみを使用します。したがって、この部分は全体のバックアップ速度を低下させます。
あなたは:
- ルートデータベースのパスワードをルートフォルダにあるファイル(.mysql - ファイルの正確な構文と名前が記憶されていない)に入力します。このファイルはルートからのみアクセスできます。これにより、mySQLパスワードを使用して自動ルートログインが有効になります。
- 現在実行中のタスクを/usr/local/sbinにあるスクリプトに入れます(おそらくrootとtrustedグループのみを読むことができます)
- cronを介してスクリプトを呼び出します。
- スクリプト内のすべてのコマンドにフルパスを使用します。すべての「共通」パスが設定されている環境では、Cronが実行されない可能性があります。
- 使用するか
pgzip
空き容量がある場合は、バックアップ完了後に圧縮してください。
答え2
Debian には、MySQL データのダンプ、圧縮、および回転を処理するのに役立つパッケージがあります。次のコマンドを使用してインストールできます。
$ sudo apt-get インストール automysqlbackup
その後、毎日、毎週、毎月のダンプが配置されます。/var/lib/automysqlbackup