以前紹介した
bashスクリプトでデータベースをバックアップする
のコードをhetemlのサーバーにあげて、cronで回すとエラーが
調べてみると..
hetemlのよくあるお問い合わせに
http://heteml.jp/support/faq/2085.html
Q.cronで rm や wget 、find コマンドは使えますか?
A.cronでは rm や wget 、find コマンドはご利用いただけません。
rmが使えない..
困ったということでphpでバックアップを取ろうと、以前の記事
phpでデータベースのバックアップをとる
でやりました
そのままのコードだと
ログインルートにファイルが保存される、
hetemlのmysqlデータベースは別サーバー,
なので、ちょっと修正
#!/usr/bin/php
<?php
$date = new DateTime();
$today = $date->format("Y-m-d");
$date->sub(new DateInterval("P11D"));
$deleteDate = $date->format("Y-m-d");
$backupFolder = "backup/database/";
$backupFile = $today . ".dbbackup";
$deleteFile = $deleteDate . ".dbbackup";
system("mysqldump -u (user name) -h (database server address) --password=(password) (database name) > {$backupFolder}{$backupFile}");
if (file_exists($backupFolder.$deleteFile)) {
unlink($backupFolder.$deleteFile);
}
backup.phpなどとファイルに保存、sftpかsshを有効にしてscpでサーバーにあげます
権限は700になるようにしました
sftpかsshでログインして、
backup/database
というディレクトリをサーバーへ作っておきます
あとはcron設定をして、バックアップが取れてれば成功です
cronのエラーはメールアドレスをcron設定の画面で登録すると、飛んできます
参考) heteml cron設定マニュアル
いまのところWEBサーバーにバックアップを保存してます
今後、違うサーバーへ保存しようと思います