首页 > 解决方案 > 文件不是通过 bash 脚本添加到 zip 中,而是在终端的命令行中工作

问题描述

我正在 cron 中运行一个脚本,并尝试通过以下代码在 zip 中添加一个文件,

#!/bin/bash

cd /home/mainfolder/cron

date=$(date --date=yesterday +%F)

FILE=/home/mainfolder/folder/$date.zip

if test -f "$FILE"; then

echo $date

else 

wget -r -np -nH --user=USER --password=PASSWORD https://sercret-website.com/$date.zip -P /home/mainfolder/folder/

zip -ur $date.zip file.txt

mkdir temp
cp /home/mainfolder/folder/$date.zip /home/mainfolder/temp/
cd /home/mainfolder/temp/

fi

我的文件名是昨天的日期让我们说今天是 2019-12-18 (yyyy-mm-dd) 我的文件名是 2019-12-17.zip

当我在 bash sh -x script.sh 中运行时它不起作用当我在终端中正常运行时它运行良好

zip -ur 2019-12-17.zip file.txt

我正在使用 CentOS 服务器。

任何人都知道我做错了什么。

我尝试

#!/bin/sh != #!/bin/bash
#!/bin/sh 
#!/bin/bash

没有任何工作

标签: bashgrepzip

解决方案


我会date=$(date --date=yesterday +%F)改为:

date=`date --date=yesterday +%F`

并将 zip 写为

zip -ur ${date}.zip file.txt

和shebang为:

#!/bin/sh -x

然后我会在 cron 日志文件中查找失败的原因。


推荐阅读