我对Shell脚本很陌生,并且正在编写一个脚本,它将从我的数字海洋桶(空间)中删除旧的项目。
脚本在手动运行时是工作的,但是当我使用crontab时给出了错误,并且我看到了其他类似的问题,但是没有帮助。
脚本:
#!/bin/bash
/usr/local/bin/s3cmd -c ~/Bucket_Name ls s3://$1 | while read -r line;
do
createDate=`echo $line|awk {'print $1" "$2'}`
createDate=`date -d"$createDate" +%s`
olderThan=`date -d"-$2" +%s`
#echo $line
#echo $createDate
#echo $olderThan
#echo $1
#echo $2
if [[ $createDate -lt $olderThan ]]
then
fileName=`echo $line|awk {'print $4'}`
#echo $fileName
if [[ $fileName != "" ]]
then
#printf 'FILE' $fileName
if [[ $fileName == *"sql" ]]
then
/usr/local/bin/s3cmd -c ~/Bucket_Name rm "$fileName"
fi
fi
fi
done;手册命令(工作):
./sqlclear.sh "Bucket_Name" "300 minutes"Crontab命令:
* * * * * sh /sqldump/sqlclear.sh "Bucket_Name" "300 minutes" >> /var/log/sql-clear.log 2>&1错误Cron日志(上面的SQLClear.log):
/sqldump/sqlclear.sh: 13: /sqldump/sqlclear.sh: [[: not found发布于 2017-11-02 08:42:23
我在crontab运行时错过了Bash,所以crontab应该是
* * * * * bash /sqldump/sqlclear.shhttps://stackoverflow.com/questions/47070610
复制相似问题