您好,我正在尝试编写一个简单的Shell脚本以在cronjob中使用,以通过FTP将网站文件的备份存档复制到远程服务器。
当我手动手动输入文件名时,下面的脚本有效,但是使用指定的日期和文件名作为变量,它返回的结果是找不到“ .tar.gz”,就好像忽略了文件名的第一部分一样。 。
如果有人可以告诉我我要去哪里错了,我将不胜感激。
#!/bin/sh
NOW=$(date +"%F")
FILE="$NOW_website_files.tar.gz"
# set the local backup dir
cd "/home/localserver/backup_files/"
# login to remote server
ftp -n "**HOST HIDDEN**" <<END
user "**USER HIDDEN**" "**PASSWORD HIDDEN**"
cd "/backup_files"
put $FILE
quit
END
这是因为它正在寻找一个NOW_website_files
不存在的变量名,因此生成的文件名的计算结果为.tar.gz
。
要解决此问题,请执行以下操作:
#!/bin/sh
NOW=$(date +"%F")
FILE="${NOW}_website_files.tar.gz"
^ ^
代替
FILE="$NOW_website_files.tar.gz"
这样,它将把变量连接$NEW
到_website_files.tar.gz
文本上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句