我正在尝试为cron编写mysql备份脚本。使用Ubuntu服务器。
目前的代码如下:
#!/bin/sh
mysqldump -u root --all-databases > /root/all_databases_backup-`date +%A`.sql我是否需要在mysqldump之前添加“sudo”,如:
#!/bin/sh
sudo mysqldump -u root --all-databases > /root/all_databases_backup-`date +%A`.sql我之所以问这个问题,是因为当我在shell中运行mysql/mysqldump时,总是说权限被拒绝。我得做点什么才行。
那么,脚本中的命令也需要sudo吗?
谢谢。
发布于 2012-05-08 12:53:30
mysqldump命令不需要sudo,但是将转储文件保存在/root文件夹下需要根权限。因此,您需要使用sudo运行脚本。
还可以注意到,运行以下命令:
sudo mysqldump -u root --all-databases > /root/all_databases_backup-`date +%A`.sql会让你的权限被拒绝。这是因为输出重定向仍然不是以root的形式运行,而是仅以转储部分的形式运行。
发布于 2012-05-08 12:53:53
在您的情况下,您需要sudo来写入/root/文件夹。如果您可以将数据库转储到具有正确权限的任何其他文件夹(或更改/root上的权限--不推荐),则可以不用sudo使用它。
https://serverfault.com/questions/387072
复制相似问题