Bash
Cronjob 不執行。類似的 cronjob 確實執行。環境變數的問題???Fedora 參與其中。psql 涉及
我有這樣的 cronjobs
* * * * * /usr/bin/psql -U usename dbname -c "select usename, now(), pg_terminate_backend(pid) from pg_stat_activity where state like 'idle%' and (now() - query_start) > interval '2 hour';" &> /home/fedora/terminate_backend.log * * * * * /usr/bin/psql -U usename dbname -c "vacuum analyze;" &> /home/fedora/vacuum.log
第二個是執行並生成請求的日誌,儘管沒用。上面沒有創建日誌,我有理由相信它沒有執行。
我已經嘗試
/usr/bin/echo "DUMB" > /home/fedora/dumb.log;
在前面添加,但仍然沒有出現。看起來像這樣
* * * * * /usr/bin/echo "DUMB" > /home/fedora/dumb.log; /usr/bin/psql -U usename dbname -c "select usename, now(), pg_terminate_backend(pid) from pg_stat_activity where state like 'idle%' and (now() - query_start) > interval '2 hour';" &> /home/fedora/terminate_backend.log
任何幫助表示讚賞。可能與環境變數有關嗎?如果查看
env
並嘗試添加主機 127.0.0.1,則沒有。順便說一句,真空的工作原理,所以…
答案是為什麼我的crontab 不起作用,我該如何解決?,但切入正題,就是
%
. 來自man 5 crontab
:The entire command portion of the line, up to a newline or a "%" character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile. A "%" character in the command, unless escaped with a backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.
具有 a 的 crontab 條目
%
被截斷(其餘變為標準輸入),因此命令失敗並且重定向失去。