7z无法使用putty下的shell脚本

时间:2016-06-16 20:31:38

标签: linux shell putty 7zip

我想使用 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 会返回此错误:“找不到1个文件”。见enter image description here

如果我通过 putty 直接运行 7z 命令,那么它可以正常运行,但同样的命令无法从 testcript.sh 运行。< / p>

1 个答案:

答案 0 :(得分:3)

我怀疑您的SRCDIR变量存在复制/粘贴错误,因为WARNING: No more files输出表明它正在尝试扫描没有名称的目录。简单地指定错误的变量名称(因此没有目录)将导致它包含当前目录中的文件,因此它可能更像某个地方脚本中的无效字符。您是否尝试使用hexdump -C查看脚本以确保在任何地方都没有奇怪的流浪字符?

如果我使用名为"/tmp/src/"^M的源目录,其中^M实际上是回车符(插入带有^V ^M的vim),我得到的结果与屏幕截图中显示的相同

此处摘录自the bash tag wiki

  1. 检查您的脚本或数据是否具有DOS样式的行尾字符

    • 使用cat -v yourfileecho "$yourvariable" | cat -v

      DOS回车将在每行后显示为^M

      如果找到它们,请使用dos2unix(a.k.a。fromdos)或tr -d '\r'

    • 删除它们