简体   繁体   English

脚本可手动运行,但不能通过crontab

[英]Script working manually but not via crontab

I am new to Shell scripts and working on a script which will delete older items from my Digital ocean bucket (SPACES) 我是Shell脚本的新手,正在研究一个脚本,该脚本将从我的Digital Ocean bucket(SPACES)中删除较旧的项目

Script is working when run manually but giving error when i use crontab and i have seen other similar questions but were not helpful 手动运行时脚本正在工作,但是当我使用crontab时出现错误,但我也看到了其他类似的问题,但没有帮助

Script: 脚本:

#!/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;

Manual Command (Working): 手动命令(工作中):

./sqlclear.sh "Bucket_Name" "300 minutes"

Crontab Command : Crontab命令:

* * * * * sh /sqldump/sqlclear.sh "Bucket_Name" "300 minutes" >> /var/log/sql-clear.log 2>&1

Error Cron Log (sql-clear.log from above): 错误的Cron日志(来自上面的sql-clear.log):

/sqldump/sqlclear.sh: 13: /sqldump/sqlclear.sh: [[: not found

我在crontab中运行时错过了Bash,因此crontab应该是

* * * * * bash /sqldump/sqlclear.sh

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM