1. 程式人生 > >​老男孩教育每日一題-第85天-下面這個腳本直接執行沒有問題,在定時任務中有問題,什麽原因?

​老男孩教育每日一題-第85天-下面這個腳本直接執行沒有問題,在定時任務中有問題,什麽原因?

定時任務 環境變量問題 無法取出ip地址 每日一題

腳本內容:

[[email protected] scripts]# cat /server/scripts/ip.sh 
#!/bin/bash
IP=$(ifconfig eth0 |awk -F "[ :]+" ‘NR==2{print $4}‘)
echo "ip:$IP" >> /tmp/ip.txt

定時任務:
[[email protected] scripts]# crontab -l
* * * * * /bin/bash /server/scripts/ip.sh &> /dev/null

定時任務執行後的結果:

[[email protected]
/* */ scripts]# cat /tmp/ip.txt ip: ip: ip: ip:

參考答案:

原因:

此腳本在定時任務中沒有取出ip,說明ifconfig命令沒有執行成功,就是沒有找到ifconfig,與PATH環境變量有關,PATH環境變量在/etc/profile文件中設置,而定時任務卻是以nologin方式調用腳本,不會加載/etc/profile,所以導致此腳本在定時任務中執行失敗

解決

方法1:

在腳本中ifconfig 命令寫全路徑 /sbin/ifconfig

查看結果如下

[[email protected] scripts]# cat /tmp/ip.txt 
ip:
ip:
ip:
ip:
ip:
ip:10.0.0.101
ip:10.0.0.101

方法2:

在腳本中加入 source /etc/profile

備註

今天是每日一題陪伴大家的第85天期待你的進步

對於題目和答案的任何疑問,請在博客評論區留言
往期題目索引

http://lidao.blog.51cto.com/3388056/1914205

本文出自 “李導的博客” 博客,請務必保留此出處http://lidao.blog.51cto.com/3388056/1944566

​老男孩教育每日一題-第85天-下面這個腳本直接執行沒有問題,在定時任務中有問題,什麽原因?