簡體   English   中英

Crontab無法在腳本中執行命令

[英]Crontab can't execute command in script

我已經編寫了Shell腳本,當掛載點達到90%的容量時,該腳本會刪除目錄中最舊的日志文件。 當我手動運行腳本時,它工作正常,但是當我嘗試使用crontab運行時,它似乎無法執行實際的rm命令,但會執行腳本中的其他所有內容。 請參閱下面的我的crontab和腳本。

0 * * * *  /acsmgmt/iselogs/iselogcleanup.sh

#!/bin/bash
df -H | grep /acsmgmt | awk '{ print $4 " " $5 }' | while read output;
do
    #!echo $output
    usep=$(echo $output | awk '{ print $1 }' | cut -d '%' -f1)
    #!echo $usep

    if [ $usep -ge 90 ]; then
            echo $(date) "Logs cleaned up" >> /tmp/isecleanup.log
            rm -v `ls /acsmgmt/iselogs -rt | grep "iselog-" | head -1` >> /tmp/isecleanup.log
    else
            echo $(date) "No logs to clean up" >> /tmp/isecleanup.log
    fi
done

因此,正如我所懷疑的,答案的確是要始終確保在cron調用的任何腳本中指定正確且完整的PATH變量。

(即使多年編寫cron腳本,我自己也會犯同樣的錯誤-cron的某些版本允許您為所有腳本指定默認的PATH(和其他環境變量),這會有所幫助,但也需要謹慎保養。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM