Linux學習總結(二十七)任務計劃,系統服務管理
說白了就是運行命令或者腳本的一個定時器,他可以讓我們在休息時間自動給我們執行任相關任務。
來看下它的配置文件: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一致
-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學習總結(二十七)任務計劃,系統服務管理