我尝试使用cron作业来备份我的数据库,但是当我尝试在cron作业上添加脚本时,它会显示如下错误消息:
无法设置字符">"
这是我正在使用的脚本:
mysqldump -u "username" --password='****' --no-create-info --no-tablespaces "username" > /home/"username"/public_html/_backup/db__$(date +\%Y-\%m-\%d_\%H_\%M_\%S).sql
如果我通过SSH控制台运行相同的脚本,它会很好地创建文件,但由于此错误,我无法创建cron。
由于我在共享主机上,我无法使用其他PHP功能,例如exec()
,因为出于安全原因,它们会被默认阻止。
支持说我应该逃避角色,因为它们是不被允许的,但是然后脚本失败了,因为它无效。有办法解决这个问题吗?
答案 0 :(得分:1)
cron只是尝试在不调用shell的情况下启动命令行。输出重定向虽然是shell的一个特性,但mysqldump
命令无法理解。
现在您有两个选择:
后一种方法具有额外的优势,您可以轻松定义确切的执行环境。 cron通常只定义很少的环境变量,这可能很痛苦。在您的脚本中,您可以获取$ HOME / .bashrc(或其他任何文件),设置路径变量等。