了解systemctl和chkconfig的服务管理工具
crontab計(jì)劃任務(wù)
crontab計(jì)劃任務(wù)的計(jì)時(shí)方式:對(duì)大部分時(shí)間單位都清楚的劃分,具體可以劃分到分鐘,時(shí)間單位有分鐘,小時(shí),日(一個(gè)月內(nèi)的第幾天),月,周(一周的第幾天,計(jì)劃任務(wù)中可以是指定為每隔幾周來執(zhí)行某些任務(wù))
[root@localhost ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root# For details see man 4 crontabs# Example of job definition: # .---------------- minute (0 - 59) 分鐘時(shí)間單位,從0-59分鐘 # | .------------- hour (0 - 23) 小時(shí)時(shí)間單位,從0-23點(diǎn) # | | .---------- day of month (1 - 31) 日期時(shí)間單位,從1-31日 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 月的時(shí)間單位,從1-12月 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 周幾的時(shí)間單位,從0-6(0和7可以指定一周的第七天) # | | | | | # * * * * * user-name command to be executed
crontab計(jì)劃任務(wù)分為分\時(shí)\日\(chéng)月\周為時(shí)間計(jì)算單位,*代表每隔多長(zhǎng)時(shí)間就執(zhí)行,全部為*時(shí)表示每分鐘執(zhí)行一次
分:以分鐘為單位,可以寫0到59的分鐘數(shù),也可以寫成每隔多少分鐘( 如每隔20分鐘執(zhí)行操作:*/20 * * * * )
時(shí):以小時(shí)為單位,可以取值0到59的數(shù)值,可以寫成每隔多少小時(shí),也可以寫成如9-13點(diǎn)的時(shí)間段,配合分鐘設(shè)置使用,表示為9點(diǎn)到13點(diǎn)這段時(shí)間內(nèi),在每小時(shí)的第幾分鐘執(zhí)行一次任務(wù)。
日:指定一個(gè)月內(nèi)的第多少天,可以指定一段日期,表示為在這段日期內(nèi),每天都會(huì)執(zhí)行一次計(jì)劃任務(wù),可以使用格式1,2,3表示1和2和3的時(shí)間點(diǎn)上都執(zhí)行計(jì)劃任務(wù)
月:指定一年內(nèi)的第幾個(gè)月,可以指定N個(gè)月的時(shí)間段,表示為在這段日期內(nèi),每天都會(huì)執(zhí)行一次計(jì)劃任務(wù),也可以指定每隔幾個(gè)月執(zhí)行一次計(jì)劃任務(wù)(如 : * * */2 * * 表示為每隔兩個(gè)月執(zhí)行一次計(jì)劃任務(wù)),可以使用格式1,2,3表示1和2和3的時(shí)間點(diǎn)上都執(zhí)行計(jì)劃任務(wù)
周: 一周的第幾天,從0-6的數(shù)值,0和7則表示為一周的第七天,同樣可以指定一段時(shí)間或每隔幾周執(zhí)行一次計(jì)劃任務(wù),這里需要注意的是寫成*/2的意思則是每隔2周去執(zhí)行,而不是這周會(huì)每隔兩天的意思。
crontab 選項(xiàng) 執(zhí)行操作的命令
crontab -e 編輯計(jì)劃任務(wù),向crontab配置文件中新添加一個(gè)計(jì)劃任務(wù)
crontab -l 列出系統(tǒng)中當(dāng)前所有的計(jì)劃任務(wù)
crontab -r 刪除所有配置的計(jì)劃任務(wù),清空所有計(jì)劃任務(wù)
crontab -u 指定某個(gè)用戶下的所有計(jì)劃任務(wù)配合-l 列出當(dāng)前用戶的計(jì)劃任務(wù)
crontab 執(zhí)行腳本當(dāng)中的命令時(shí),可能會(huì)執(zhí)行不成功,原因是因?yàn)槟_本中是直接使用命令來執(zhí)行的,而不是使用命令的絕對(duì)路徑,這樣就會(huì)導(dǎo)致命令執(zhí)行失敗,計(jì)劃任務(wù)同樣也會(huì)無法正確執(zhí)行
centos7啟動(dòng)crontab,必須啟動(dòng)計(jì)劃任務(wù)進(jìn)程才能夠正常運(yùn)行計(jì)劃任務(wù):
[root@localhost ~]# systemctl start crond.service [root@localhost ~]# systemctl status crond.service ● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2018-07-17 01:13:53 CST; 12h agoMain PID: 1015 (crond)CGroup: /system.slice/crond.service└─1015 /usr/sbin/crond -nJul 17 01:13:53 localhost.localdomain systemd[1]: Started Command Scheduler. Jul 17 01:13:53 localhost.localdomain systemd[1]: Starting Command Scheduler... Jul 17 01:13:53 localhost.localdomain crond[1015]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 18% if used.) Jul 17 01:13:53 localhost.localdomain crond[1015]: (CRON) INFO (running with inotify support) [root@localhost ~]# ps -aux |grep crond root 1015 0.0 0.1 126228 1592 ? Ss 09:07 0:00 /usr/sbin/crond -n root 3752 0.0 0.0 112652 960 pts/0 R+ 13:54 0:00 grep --color=auto crond備份計(jì)劃任務(wù),計(jì)劃任務(wù)的配置文件存儲(chǔ)在/var/spool/cron/下,計(jì)劃任務(wù)會(huì)以用戶名的命名方式來存儲(chǔ),cat該用戶名的配置文件可以查看計(jì)劃任務(wù)內(nèi)容,備份可以直接拷貝該文件即可
[root@localhost ~]# crontab -l 1 5 */7 * * cp /etc/passwd /usr/local/src/ [root@localhost ~]# cat /var/spool/cron/root 1 5 */7 * * cp /etc/passwd /usr/local/src/ 45 4 1,10,22 * * /etc/init.d/httpd restart 上面的例子表示每月1、10、22日的4:45重啟apache。 10 1 * * 6,0 /etc/init.d/httpd restart 上面的例子表示每周六、周日的1:10重啟apache。 0,30 18-23 * * * /etc/init.d/httpd restart 上面的例子表示在每天18:00至23:00之間每隔30分鐘重啟apache。 0 23 * * 6 /etc/init.d/httpd restart 上面的例子表示每星期六的23:00 重啟apache ```。0 /1 /etc/init.d/httpd restart
每一小時(shí)重啟apache
0 23-7/1 * /etc/init.d/httpd restart
晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟apache
0 11 4 * mon-wed /etc/init.d/httpd restart
每月的4號(hào)與每周一到周三的11點(diǎn)重啟apache
0 4 1 jan * /etc/init.d/httpd restart
一月一號(hào)的4點(diǎn)重啟apache
注意:該輸出結(jié)果只顯示 SysV 服務(wù),并不包含原生 systemd 服務(wù)。SysV 配置數(shù)據(jù)可能被原生 systemd 配置覆蓋。
如果您想列出 systemd 服務(wù),請(qǐng)執(zhí)行 'systemctl list-unit-files'。
欲查看對(duì)特定 target 啟用的服務(wù)請(qǐng)執(zhí)行
'systemctl list-dependencies [target]'。
[root@localhost locales]# systemctl list-units -all --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrt-vmcore.service loaded inactive dead Harvest vmcores for ABRT
abrt-xorg.service loaded inactive dead ABRT Xorg log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
auditd.service loaded active running Security Auditing Service
[root@localhost locales]# systemctl enable crond
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.
systemctl start 例如啟動(dòng)crond服務(wù)
[root@localhost locales]# systemctl start crond
systemctl status 查看服務(wù)的運(yùn)行狀態(tài),服務(wù)狀態(tài)如下
[root@localhost locales]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2018-07-17 15:58:15 CST; 2s ago 這里狀態(tài)為active(running)
Main PID: 3962 (crond)
CGroup: /system.slice/crond.service
└─3962 /usr/sbin/crond -n
systemctl stop 停止一個(gè)服務(wù),并查看它的狀態(tài)信息
[root@localhost locales]# systemctl stop crond
[root@localhost locales]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 二 2018-07-17 15:59:47 CST; 9s ago 這里狀態(tài)為inactive(dead)
Process: 3962 ExecStart=/usr/sbin/crond -n $CRONDARGS (code=exited, status=0/SUCCESS)
Main PID: 3962 (code=exited, status=0/SUCCESS)
systemctl restart 重啟一個(gè)服務(wù)
[root@localhost locales]# systemctl restart crond
使用systemctl is-enabled 服務(wù)名 查看一個(gè)服務(wù)是否開機(jī)啟動(dòng)
[root@localhost locales]# systemctl is-enabled crond
enabled
[root@localhost locales]# ls /usr/lib/systemd/system
abrt-ccpp.service lvm2-lvmetad.service sshd@.service
abrtd.service lvm2-lvmetad.socket sshd.socket
abrt-oops.service lvm2-lvmpolld.service suspend.target
abrt-pstoreoops.service lvm2-lvmpolld.socket svnserve.service
abrt-vmcore.service lvm2-monitor.service swap.target
abrt-xorg.service lvm2-pvscan@.service sys-fs-fuse-connections.mount
arp-ethers.service machine.slice sysinit.target
auditd.service machines.target sysinit.target.wants
[root@localhost system]# systemctl list-unit-files --type=target
UNIT FILE STATE
basic.target static
bluetooth.target static
cryptsetup-pre.target static
cryptsetup.target static
ctrl-alt-del.target disabled
default.target enabled
emergency.target static
[root@localhost system]# systemctl list-dependencies multi-user.target
multi-user.target
● ├─abrt-ccpp.service
● ├─abrt-oops.service
● ├─abrt-vmcore.service
● ├─abrt-xorg.service
● ├─abrtd.service
● ├─auditd.service
● ├─brandbot.path
● ├─crond.service
[root@localhost system]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
Type=forking
PIDFile=/var/run/sshd.pid
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install] 從這部分查看屬于哪個(gè)target,這里的.service中寫入的配置是服務(wù)啟動(dòng)管理的內(nèi)容
WantedBy=multi-user.target
轉(zhuǎn)載于:https://blog.51cto.com/8844414/2146012
總結(jié)
以上是生活随笔為你收集整理的了解systemctl和chkconfig的服务管理工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一章:前端视角——js运行环境之nod
- 下一篇: 重定向输入输出