我想使用 7z 命令定期备份文件。
以下是 testscript.sh :
#!/bin/bash
SRCDIR="/var/www/html/folder2beBackedup/"
DESTDIR="/var/www/html/backups/"
FILENAME=bk_test-$(date +%Y%m%d%H%M%S).7z
7za a $DESTDIR$FILENAME $SRCDIR
我在 putty 中运行脚本,如下所示:
/bin/bash /var/www/html/testscript.sh
如果我通过 putty 直接运行 7z 命令,那么它可以正常运行,但同样的命令无法从 testcript.sh 运行。< / p>
答案 0 :(得分:3)
我怀疑您的SRCDIR
变量存在复制/粘贴错误,因为WARNING: No more files
输出表明它正在尝试扫描没有名称的目录。简单地指定错误的变量名称(因此没有目录)将导致它包含当前目录中的文件,因此它可能更像某个地方脚本中的无效字符。您是否尝试使用hexdump -C
查看脚本以确保在任何地方都没有奇怪的流浪字符?
如果我使用名为"/tmp/src/"^M
的源目录,其中^M
实际上是回车符(插入带有^V ^M
的vim),我得到的结果与屏幕截图中显示的相同
此处摘录自the bash tag wiki:
检查您的脚本或数据是否具有DOS样式的行尾字符
使用cat -v yourfile
或echo "$yourvariable" | cat -v
。
DOS回车将在每行后显示为^M
。
如果找到它们,请使用dos2unix
(a.k.a。fromdos
)或tr -d '\r'