我正在嘗試查找已創建的cronjob,以確保該腳本不會重複相同的cronjob。使用crontab搜索cronjob -l
我一直在嘗試使用這些方針的東西,但沒有多少運氣:
if ! crontab -l | xargs grep -l '/var/www/arix/update.php'; then
echo "Cronjob already exists"
else
echo "Cronjob doesn't exist"
fi
我正在嘗試查找已創建的cronjob,以確保該腳本不會重複相同的cronjob。使用crontab搜索cronjob -l
我一直在嘗試使用這些方針的東西,但沒有多少運氣:
if ! crontab -l | xargs grep -l '/var/www/arix/update.php'; then
echo "Cronjob already exists"
else
echo "Cronjob doesn't exist"
fi
/var/spool/cron/crontabs
是crontab文件通常的父目錄。例如,有那些有用戶名的文件 - root是根crontab。系統中的每個用戶都有可能使用crontab -e並創建他/她自己的crontab。
以root身份,您可以:
cd /var/spool/cron/crontabs
grep 'search string' *
此命令(作爲root)會告訴你什麼用戶的crontab有串。如果存在。
如果你不確定crontabs是什麼東西,你會這樣做的。crontab -l
只給出你crontab中的東西,當前登錄的用戶。如果你確定這是最好的檢查地點:
crontab -l | grep -q 'search string' && echo 'entry exists' || echo 'entry does not exist'
它的工作!謝謝。我改變了程序,看起來如下,並按需要工作。如果! crontab -l | grep -q'/var/www/arix/update1.php';然後回聲「Cronjob不存在」 – user0000001
這工作完美!謝謝!! – ChrisPrime
Thanks @ user0000001,這是格式化它的一種有用方法。 – Noumenon
執行這些行後發生了什麼? –
你不需要xargs。你爲什麼要'grep -l'?也許只是「如果! crontab -l | grep -q'....';那麼'應該工作。最後,爲了調試情況,執行內部元素,然後追加下一個部分,即'crontab -l'(是否產生您期望的輸出?),然後執行'crontab -l | ...'。祝你好運。 – shellter