有人可以看到以下内容有什么问题吗?
我一直在寻找并且无法看到问题,但它未能创建SQL转储并且没有创建tar。
变量显然会有详细信息。我检查过这些都是正确的。
#!/bin/bash
SITE=""
PATH=""
SERVER=""
DBUSER=""
DB=""
DBPW=""
DATE=`date '+%d-%m-%y-%H-%M'`
tar -czf ~/backup/${DATE}-${SITE}.tar.gz \
/var/sites/${PATH}/public_html
mysqldump -f \
-u ${DBUSER} ${DB} \
-p${DBPW} \
-h ${SERVER} > ~/backup/${DATE}-db-${SITE}.sql
find ~/backup -mtime +3 -exec rm -f {} \;
代码的目的是创建我的服务器文件和数据库的备份。该脚本通过CRON运行。
答案 0 :(得分:0)
你的脚本中有很多地方会很难处理空格。还有一些其他改进可以帮助您解决问题(因为您没有给我们任何失败的输出......)。
一般
"
围绕可能最终有空格的命令的参数。set -x
放在脚本的顶部,以查看运行时发生的情况。也可以使用bash -x script.sh
启动它。set -u
让脚本死掉。set -e
让它死亡。set -eu
将它们合并:)-delete
代替-exec rm -f {} \;
。如果没有,请确保将其包含在"
中,或者更好,请使用-print0
和xargs
并输入-0
。根据您拥有的版本,我们的想法是使用NUL
作为分隔符,而不是空格(默认shell)。