8-1 10 計劃任務cron chkconfig systemd unit target

10.23 linux任務計劃cronhtml

10.24 chkconfig工具linux

10.25 systemd管理服務vim

10.26 unit介紹windows

10.27 target介紹centos

擴展ssh

  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

10.23 linux任務計劃crontab

crontab命令被用來提交和管理用戶的須要週期性執行的任務,與windows下的計劃任務相似,當安裝完成操做系統後,默認會安裝此服務工具,而且會自動啓動crond進程,crond進程每分鐘會按期檢查是否有要執行的任務,若是有要執行的任務,則自動執行該任務。socket

  • 執行須要開啓crond服務
systemctl start crond 
systemctl status crond
systemctl stop crond
//分別是開啓、查看、中止crond服務
  • /etc/crontab 配置文件

crontab命令 命令效果 命令含義
crontab -e vim /var/spool/cron/root 編輯計劃
crontab -l cat /var/spool/cron/root 查看計劃
crontab -r rm /var/spool/cron/root 刪除計劃
crontab -ue user1 vim vim /var/spool/cron/user1 user1計劃
[root@axiang ~]# crontab -e  //設置任務計劃
[root@axiang ~]# systemctl start crond
[root@axiang ~]# ps aux | grep cron
root       527  0.0  0.1 126220  1612 ?        Ss   20:18   0:00 /usr/sbin/crond -n
root      2593  0.0  0.0 112664   972 pts/0    S+   21:51   0:00 grep --color=auto cron
[root@axiang ~]# systemctl status crond //查看狀態以下圖

[root@axiang ~]# crontab -l //查看當前設置
1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f
[root@axiang ~]# cat /var/spool/cron/root //若是想備份、從這裏複製
1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f
[root@axiang ~]# crontab -r //刪除
[root@axiang ~]# crontab -l
no crontab for root
[root@axiang ~]# crontab -u root -l //制定用戶
crontab -e 
//編寫任務,進入相似vim的頁面寫任務計劃

時間可選描述方式:工具

  1. 分範圍0-59,時範圍0-23,日範圍0-31,月範圍0-12,周1-6
  2. 可用格式1-5表示一個範圍1到5
  3. 可用格式1,2,3表示1或者2或者3
  4. 可用格式*/2表示被2整除的數字,好比小時,那就是每隔2小時

小實驗: 注意:命令儘可能使用絕對路徑,建議追加執行日誌「>>/tmp/rigth.log 2>>/tmp/wrong.log」centos7

10.24 chkconfig工具

chkconfig命令檢查、設置系統的各類服務。這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操做系統在每個執行等級中會執行哪些系統服務,其中包括各種常駐服務。謹記chkconfig不是當即自動禁止或激活一個服務,它只是簡單的改變了符號鏈接(該命令多用於centos6及之前版本)。操作系統

常見參數

  • --list:查看在使用chkconfig命令的服務的狀態
  • --add:增長指定服務
  • --del:刪除指定服務
  • --level:指定某系統服務要在系統某運行級別中開啓或關畢。

示例:

chkconfig --list 查看當前系統服務狀態
ls /etc/init.d/ 查看現有服務 chkconfig --level 345 network off/on 開啓某一級別的服務

運行級別配置文件:「/etc/inittab」,centos7已再也不使用該文件。

  • 添加/刪除服務
    首先,在添加服務以前必須把該服務的腳本按規定格式 放到「/etc/init.d/」目錄下並添加執行權限。而後執行命令:
ls /etc/init.d/
123  functions  netconsole  network  README

添加/刪除:
chkconfig --add /etc/init.d/123
chkconfig --list

123            	0:關	1:關	2:開	3:開	4:開	5:開	6:關
netconsole     	0:關	1:關	2:關	3:關	4:關	5:關	6:關
network        	0:關	1:關	2:開	3:開	4:開	5:開	6:關

chkconfig --del /etc/init.d/123

10.25 systemd管理服務

systemctl命令是系統服務管理器指令,它實際上將 service 和 chkconfig 這兩個命令組合到一塊兒。

systemctl命令

任務 舊指令 新指令
使某服務開機啓動 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服務開機不啓動 chkconfig --level 3 httpd off systemctl disable httpd.service
檢查服務狀態 service httpd status systemctl status httpd.service(服務詳細信息),systemctl is-active httpd.service(僅顯示狀態爲Active的服務信息)
顯示全部已啓動的服務 chkconfig --list systemctl list-units (--all)--type=service(--all同時顯示inactive狀態的服務)
啓動某服務 service httpd start systemctl start httpd.service
中止某服務 service httpd stop systemctl stop httpd.service
重啓某服務 service httpd restart systemctl restart httpd.service
檢測某服務是否開機啓動 systemctl is-enabled httpd.service
systemctl enable crond
systemctl disable crond
ls /etc/systemd/system/
  • 伴隨某服務的開/關會創建/刪除一個指向該服務的軟連接「/etc/systemd/system/multi-user.target.wants/crond.service」-->「/usr/lib/systemd/system/crond.service」

10.26 unit介紹

  • unit所在目錄:/usr/lib/systemd/system/

  • unit文件類型

後綴 類型
service 系統服務
target 多個unit組成的組
device 硬件設備
mount 文件系統掛載點
autoamount 自動掛載點
path 文件或路徑
scope 非systemd啓動的外部程序
snapshot systemd快照
socket 進程間通訊套接字
swap swap文件
timer 定時器
  • unit相關命令
命令 任務
systemctl list-units 列出正在運行的unit
systemctl list-units --all 列出全部unit(包括非運行狀態的或啓動失敗的)
systemctl list-units --all --status=inactive 列出inactive狀態的unit
systemctl list-units --type=service 列出狀態爲active的service
systemctl is-active/enabled crond 查看某服務是否爲active/enabled狀態

10.27 target介紹

系統爲了方便管理,因此使用target來管理unit。

  • 相關操做:
任務 命令
查看全部target文件 systemctl list-unit-files --type=target
查看指定target下面有哪些unit systemctl list-dependencies multi-user.target
查看系統默認target systemctl get-default
設置系統默認target systemctl set-default multi-user.target

target、service、unit關係

  • 一個service屬於一種類型的unit,多個unit組成一個target,一個target包含多個service。

  • cat /usr/lib/systemd/system/sshd.service //查看service屬於那個target

相關文章
相關標籤/搜索