一、 問題:線上洗掉日志腳本crontab不生效, 手動執行腳本正常
0 2 * * * cd /usr/local/nginx/sh; ./dellog.sh >/dev/null 2>&1
二、排查程序:
1、crontab 中列印腳本執行日志
0 2 * * * cd /usr/local/nginx/sh; ./dellog.sh >> /tmp/log_$(date '+\%Y-\%m-\%d-\%H').txt 2>&1
2、查看日志存在中文字符
檔案:"/usr/local/nginx/logs/access.202108310250.log"' 大小:2839149 塊:5552 IO 塊:4096 普通檔案 設備:803h/2051d Inode:25353624 硬鏈接:1 '權限:(0644/-rw-r--r--)' 'Uid>:(' 99/ 'nobody)' 'Gid:(' 0/ 'root)' 最近訪問:2021-08-31 02:50:11.490258994 +0800 最近更改:2021-08-31 02:50:01.492259056 +0800 最近改動:2021-08-31 02:50:01.556259056 +0800 創>建時間:-
3、查看系統字符集
[root@local]# echo $LANG
en_US.utf8
4、初步懷疑crontab環境變數不一致導致, dellog.sh 行首增加如下代碼,查看環境變數
My_Env=$(env)
echo "${My_Env}n" > /tmp/environment.txt
[root@local]# cat environment.txt
SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
_=/usr/bin/env
PWD=/usr/local/nginx/op
LANG=zh_CN.UTF-8
HOME=/root
SHLVL=2
LOGNAME=rootn
5、問題就出在"LANG=zh_CN.UTF-8",修復方式: /etc/crontab 中增加: LANG=en_US.utf8
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
LANG=en_US.utf8
6、systemctl restart crond 重新測驗定時任務正常
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/298331.html
標籤:其他
下一篇:ORAN專題系列-28:5G基站如何升級到ORAN基站 - O-RU - 平臺和傳輸層的改進(VLAN, PCP, DHCP, DNS)
