1. 程式人生 > >Linux學習總結(二十七)任務計劃,系統服務管理

Linux學習總結(二十七)任務計劃,系統服務管理

crontab chkconfig systemctl unit target

1 任務計劃

說白了就是運行命令或者腳本的一個定時器,他可以讓我們在休息時間自動給我們執行任相關任務。
來看下它的配置文件:cat /etc/crontab
技術分享圖片
第一行定義了 shell環境
第二行定義 環境變量
第三行定義了發郵件給root用戶,郵件保存路徑為/var/spool/mail/root/
最後定義了任務內容的格式,從左到右依次為:
分 時 日 月 周 命令
分鐘:0-59
小時:0-23
日期:1-31
月份:1-12
周:0-7 0,7都表示星期天
可以指定一個範圍:比如1-5 周一到周五, 也可以單獨指定:比如1,2可以表示每月1號和2號
* 表示所有時間, */2 可以表示偶數時間段
crontab -e 創建一個任務,此時相當於vi打開一個文本,裏面的操作跟vi一致

-l 查看任務
-r 刪除任務
-u 後面跟用戶名,指定是哪個用戶的計劃任務,不指定默認root用戶
任務創建完後,一定要確保任務計劃服務啟動。
systemctl start crond.service 啟動任務計劃服務
ps aux |grep crond 查看是否啟動,查看是否有/usr/sbin/crond -n 這一進程
或者 systemctl status crond 查看,出現綠色字顯示的 active(running)表示啟動
任務放在了/var/spool/cron/username 下,username 指相應用戶
備註:不管是計劃任務,還是iptables規則,還是其他shell腳本盡量使用絕對路徑,計劃任務最好將命令執行結果反饋到日誌,>> 2>> ,以便日後有據可查

2 chkconfig

linux 系統服務管理,類似於windos的開機啟動管理。來熟悉下基本用法:

chkconfig --list //查看所有服務
chkconfig --level 345 network off  //345級別的network服務關閉
chkconfig --del network   //刪除network服務
chkconfig --add network    //添加network服務

添加服務之前需要先將服務腳本放進 /etc/init.d/文件夾

3 systemd 管理

centos 7開始使用的系統服務管理機制
systemctl list-units --all --type=service //查看所有service服務

幾個常用的服務相關的命令

 systemctl enable crond.service //讓服務開機啟動
 systemctl disable crond //不讓開機啟動
 systemctl status crond //查看狀態
 systemctl stop crond //停止服務
 systemctl start crond //啟動服務
 systemctl restart crond //重啟服務
 systemctl is-enabled crond //檢查服務是否開機啟動

4 unit 和target

unit是一個守護進程的分裝單元,多個unit組成了一個target
ls /usr/lib/systemd/system //系統所有unit,分為以下類型
service 系統服務
target 多個unit組成的組
device 硬件設備
mount 文件系統掛載點
automount 自動掛載點
path 文件或路徑
scope 不是由systemd啟動的外部進程
slice 進程組
snapshot systemd快照
socket 進程間通信套接字
swap swap文件
timer 定時器
unit相關的命令

 systemctl list-units //列出正在運行的unit
 systemctl list-units --all //列出所有,包括失敗的或者inactive的
 systemctl list-units --all --state=inactive //列出inactive的unit
 systemctl list-units --type=service//列出狀態為active的service
 systemctl is-active crond.service //查看某個服務是否為active

系統為了方便管理用target來管理unit

 systemctl list-unit-files --type=target
 systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit
 systemctl get-default //查看系統默認的target
 systemctl set-default multi-user.target  //設置系統默認的target

unit target service 三者的關系:
一個service屬於一種類型的unit
多個unit組成了一個target,
一個target裏面包含了多個service
cat /usr/lib/systemd/system/sshd.service //看[install]部分,查看該
service屬於哪一個target。

Linux學習總結(二十七)任務計劃,系統服務管理