我正在尝试创建一个运行cron作业的脚本,因此它会定期转储数据库。我还尝试了几种带引号和点的组合,但都没有奏效。
<?php
$date = date('Y-m-d-H:i:s');
$host = 'localhost';
$user = 'username';
$password = 'password';
$database = 'databasename';
echo shell_exec("mysqldump -h $host -u $user -p$password $database > mysqlbackup$date.sql");
?>
答案 0 :(得分:2)
将数据库转储作为cron作业直接运行会更明智。我可以看到你已经准备好了命令,所以输入crontab -e
并输入类似于每天凌晨03:30运行它的东西:
30 03 * * * /usr/bin/mysqldump -u[username] -p[password] --all-databases --single-transaction > /home/USERNAME/backups/full_backup_`date +%Y-%m-%d_%H-%M-%S`.sql
避免在命令中输入密码 - 而是使用.my.cnf。