首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本手动工作,但不通过crontab操作。

脚本手动工作,但不通过crontab操作。
EN

Stack Overflow用户
提问于 2017-11-02 08:24:21
回答 1查看 83关注 0票数 1

我对Shell脚本很陌生,并且正在编写一个脚本,它将从我的数字海洋桶(空间)中删除旧的项目。

脚本在手动运行时是工作的,但是当我使用crontab时给出了错误,并且我看到了其他类似的问题,但是没有帮助。

脚本:

代码语言:javascript
复制
#!/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;

手册命令(工作):

代码语言:javascript
复制
./sqlclear.sh "Bucket_Name" "300 minutes"

Crontab命令:

代码语言:javascript
复制
* * * * * sh /sqldump/sqlclear.sh "Bucket_Name" "300 minutes" >> /var/log/sql-clear.log 2>&1

错误Cron日志(上面的SQLClear.log):

代码语言:javascript
复制
/sqldump/sqlclear.sh: 13: /sqldump/sqlclear.sh: [[: not found
EN

回答 1

Stack Overflow用户

发布于 2017-11-02 08:42:23

我在crontab运行时错过了Bash,所以crontab应该是

代码语言:javascript
复制
* * * * * bash /sqldump/sqlclear.sh
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47070610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档