Linux任務計劃cron,chkconfig工具,systemd管理服務,unit介紹,target介紹
筆記內容:
l 10.23 linux任務計劃cron
l 10.24 chkconfig工具
l 10.25 systemd管理服務
l 10.26 unit介紹
l 10.27 target介紹
筆記時間:2017.9.1
10.23 linux任務計劃cron
在Linux系統當中任務計劃是必不可少的,因為有時候可能需要淩晨的時候去做一些操作,例如要執行shell腳本、備份文件、執行某個命令等等。我們需要設定一個時間去執行這些操作,Windows因為是作為個人電腦系統居多,所以任務計劃在Windows中不怎麽常見。
/etc/crontab是任務計劃的配置文件:
每個* 表一位,分別是分、時、日、月、周,如果不指定用戶的話,默認是root。
crontab -e命令可以進入到crontab的配置文件當中,用法跟vim是一樣的:
*寫在分上表示每一分鐘都執行,寫在時上表示每一小時都執行,寫在天上表示這個月的每一天都執行,寫月上表示每一個月都執行,寫周上表示每一個周都執行,
如果你想指定一個日期範圍可以這麽寫:
1-10是指定一個月的天數範圍,*/2表示用月份除以二,也就是指定為偶數的月份,2,3這個月的表示第2和第3周。
想要使用crontab 任務計劃的話就需要啟動crond服務:
想要確定服務是否啟動起來了,可以使用ps aux|grep crond命令查看:
還可以使用systemctl status crond命令查看這個服務的狀態:
systemctl stop crond命令可以停止crond服務。
如果你寫了一個任務計劃,並且服務運行正常,配置的格式也正確,但是到設定的時候卻沒有執行這個任務計劃。這很有可能是你在任務計劃的配置文件裏寫的命令不是絕對路徑,如果不是絕對路徑的話,就會去找PATH環境變量裏是否有配置這條命令,PATH環境變量裏沒有的話,那麽這個任務計劃就會執行失敗,因為找不到命令的執行路徑,所以在任務計劃的配置文件裏寫命令的時候,最好寫這個命令的絕對路徑。
建議在寫任務計劃的配置文件的時候將這個任務計劃裏的命令執行後的結果集重定向到一個日誌文件裏,錯誤的信息也是。這樣的話才能夠保證這個任務有據可查,當這個任務計劃執行失敗或出問題的話,就可以去查看日誌文件,看看其中的錯誤信息是什麽,這樣有利於問題的解決。
crontab -l 命令可以看到有哪些任務計劃:
crontab 文件在/var/spool/cron/目錄下,文件會以設定任務計劃的用戶名定義:
所以要進行備份的話,就直接拷貝文件或cron目錄即可。
crontab -r命令刪除任務計劃:
crontab -u 指定某個用戶,例如我要查看root用戶的任務計劃:
10.24 chkconfig工具
我們都知道Linux系統裏會有很多服務,例如剛剛使用的crond服務、mysql服務、Nginx服務、httpd服務等等,因為有這麽多的服務,所以我們需要一個工具來管理,這個工具就是chkconfig。這是CentOS6之前版本所用的一個工具,在CentOS7裏已經不使用了,但是為了向之前的版本兼容,所以在CentOS7任然可以使用。雖然這個工具已經不怎麽用了,現在的發展趨勢也可能會淘汰掉這個工具,但是因為現在還能夠使用,所以我們需要了解一些相關的操作。
chkconfig --list 命令可以查看當前系統使用chkconfig 工具的服務:
從顯示的結果可以看到,現在系統使用chkconfig 工具的服務只有兩個,並且也提示了在CentOS7裏的的服務模式是systemd。
這些使用chkconfig 工具的服務的腳本都在/etc/init.d/目錄下:
chkconfig network off命令可以關閉network 服務:
chkconfig network on命令可以開啟network 服務:
這裏的級別表示的是CentOS6版本的系統運行級別,在CentOS7裏是沒有這個運行級別的:
0級別表示關機狀態
1級別表示單用戶模式
2級別表示是命令行的多用戶模式,但是和3級別的區別是沒有nfs服務
3級別表示是命令行的多用戶模式
4級別表示保留狀態,沒什麽卵用
5級別表示圖形界面的多用戶模式
6級別表示重啟
chkconfig --level 3 network off 命令可以關閉network 服務的3級別:
chkconfig --level 345 network off 命令可以關閉3、4、5級別:
chkconfig --level 345 network on 命令則是相反可以開啟3、4、5級別:
chkconfig --add 可以添加服務,只能添加/etc/init.d/目錄下的腳本,例如我直接把network腳本拷貝成另一個名稱的文件,然後添加上去:
這個腳本名稱可以任意,但是文件內容的格式有要求,首先得是shell腳本,還得指定在chkconfig 裏的運行級別,而且還得有description描述:
chkconfig --del 命令可以刪除chkconfig 裏的服務:
10.25 systemd管理服務
systemd是CentOS7的一個服務管理機制,systemctl list-unit-files命令可以查看所有的服務:
systemctl list-units --all --type=service命令僅僅查看service,這樣顯得沒那麽亂:
按空格鍵可以往下翻頁。
如果不加--all選項的話,就不會列出inactive的service:
讓服務開機啟動
禁止服務開機啟動:
查看服務狀態:
停止服務:
啟動服務:
重啟服務:
檢查服務是否開機啟動:
設置服務開機啟動時會有此服務配置文件路徑的信息,這個路徑是一個軟鏈接,而這個配置文件的真正路徑是/usr/lib/systemd/system/crond.service.:
如果是設置為禁止服務開機啟動的話,也會有一個信息,這個信息是把那個軟鏈接刪除了的信息:
10.26 unit介紹
系統的所有unit都在/usr/lib/systemd/system/路徑下:
target是由多個unit、service組成的一個組,在CentOS7裏也有類似於CentOS6的運行級別,不同級別的target對應著不同的級別的運行模式:
列出正在運行的unit:
列出所有,包括失敗的或者inactive的unit:
列出inactive的unit:
列出狀態為active的service:
查看某個服務是否為active或inactive:
查看某個服務是否為enable或disable:
10.27 target介紹
target是由多個unit、service組成的一個組,相當於unit、service的一個集合,但是target下也可以包含target。
列出系統裏所有的target:
查看指定target下面有哪些unit、servic,例如我要查看multi-user.target下面的unit、servic:
查看系統默認的target:
在CentOS7裏可以通過修改target來改變系統的運行級別。
設置默認的target,會創建一個軟鏈接:
想要查看某個servic屬於哪個target的話,cat那個service的文件內容看Install部分就知道了,例如我要查看sshd.service屬於哪個target:
所以target就是由多個unit組成的,而unit又是由多個service組成的,所以target包含unit和service,而target下也可以包含target。
擴展
1. anacron http://blog.csdn.net/strikers1982/article/details/4787226
2. xinetd服(默認機器沒有安裝這個服務,需要yum install xinetd安裝)
http://blog.sina.com.cn/s/blog_465bbe6b010000vi.html
3. systemd自定義啟動腳本
http://www.jb51.net/article/100457.htm
本文出自 “12831981” 博客,請務必保留此出處http://12841981.blog.51cto.com/12831981/1973407
Linux任務計劃cron,chkconfig工具,systemd管理服務,unit介紹,target介紹