Linux20180511八周一次課cron chkconf systemd unit target
10.23 linux任務計劃cron
10.24 chkconfig工具
10.25 systemd管理服務
10.26 unit介紹
10.27 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
Linux任務計劃
可能是個shell腳本,也可能是單獨命令。不管是何種形式,都需要某個時間去執行,這樣就需要確定一個時間。
任務計劃的配置文件 etc/crontab
定義了變量,環境變量,命令路徑 mailto 發郵件給誰,以及格式。不寫用戶的話,默認是root
定義Linux任務計劃的命令
crontab -e 語法和vim一樣
比如設定一個淩晨3點的任務:
解釋:
0 3 * * *0分 3點 每天 每月 每日執行
/bin/bash 說明是要執行shell腳本 後面 /user/local/sbin/123.sh 跟的是要執行的腳本 然後寫入log 因為每天都執行 所以是追加 後面跟的是錯誤的log 也追加到這個文件中
也可以使用範圍來表示時間
0 3 1-10 */2 2,5
淩晨3點0分 1-10號, */2被2整除也就是閏月 周二周五
然後啟動crond這個服務才能使用這個任務計劃
systemctl start crond
然後用檢查進程是否啟動
或者使用 systemctl status crond 檢查crond的狀態
systemctl stop crond 停掉crond
查看當前的任務計劃命令
crontab -l
刪除當前的任務計劃
crontab -r
查看指定用戶的任務計劃
crontab -u root -l
註意:
1. 有時候可能因為寫的腳本裏用的是命令,而不是命令的絕對路徑,有可能會導致無法執行。
2. 每寫一個任務計劃都要寫上追加日誌,這樣有跡可循。
3. 任務計劃的文件位置是 /var/spool/cron/root 對應用戶的cron root下就是root的,其他用戶的cron都有存在對應的用戶名下。所以備份的話可以直接拷貝這的文件到其他位置進行拷貝
Linux系統服務管理 -chkconfig
所謂的crontab firewalld 等都是服務,全是服務所以需要有一個服務管理工具。
Centos6是chkconfig,但是7也是同樣兼容的。
將服務顯示出來
chkconfig --list
解釋一下,目前看起來只有2個進程,這樣就比較奇怪,其他進程去哪了?
看上面的解釋,這個命令值展示SysV服務,不包含systemd服務,意思是6以及之前版本的服務管理機制是sysv,7用的是systemd,所以systemd是7以及以後版本的服務管理器。從top命令也可以看到這個很重要的進程。
那chkconfig管理的服務具體的位置路徑是什麽地方呢?
/etc/init.d/ 以後在配置ngix mysql的時候可能還需要把啟動腳本放到這個路徑然後使用chkconfig去管理
可以關閉服務
chkconfig network off
0-6表示不同的服務級別。
0--關機
1--單用戶 centos6以及以前版本
2--比3少了一個nfs服務
3--多用戶模式 不帶圖像
4--保留級別
5--多用戶,帶圖形界面
6-- 重啟
centos7不存在級別了。6以及之前版本可以通過更改配置文件 /etc/inittab來定義運行級別。
chkconfig 可以指定某個級別是開啟或者關閉
chkconfig --level 3 network off/on
也可以將自定義的腳本放到服務中去,必須將腳本放到 /etc/init.d目錄下
然後使用命令
chkconfig --add 新服務
當然了,這個新的服務文件的格式必須滿足一些條件 才行。我們看一看。下面兩行是必須的
chkconfig:
description:
上面的註釋的意思是,服務必須在運行級2,3,4,5下被啟動或關閉,啟動的優先級是90,關閉的優先級是10。 90是啟動優先級,10是停止優先級,優先級範圍是0-100,數字越大,優先級越低。
有添加就會有刪除
chkconfig --del 服務名
服務刪除了,文件還在哦
Linux系統服務管理--systemd(centos7的服務管理機制)
顯示所有類型的服務的命令
systemctl list-units --all --type=service
不加--all就不會把inactive的列出來
cron服務開機啟動/不啟動
systemctl enable/disable crond
查看cron狀態
systemctl status crond
停止cron服務
systemctl stop crond
啟動cron服務
systemctl start crond
重啟
systemctl restart crond
檢查cron服務是否開機啟動
systemctl is-enabled crond
同時從上面可以得到cron的配置文件的內容
從右邊軟鏈接到左邊,右邊是真正的文件路徑
enable之後就會生成軟鏈接,disable之後軟鏈接就沒有了。
Linux20180511八周一次課cron chkconf systemd unit target