八週一次課
10.23 linux任務計劃cron
10.24 chkconfig工具
10.25 systemd管理服務
10.26 unit介紹
10.27 target介紹mysql
10.23 linux任務計劃cronlinux
[root@tianqi-01 ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=rootnginx
# For details see man 4 crontabssql
# Example of job definition:
# .---------------- minute (0 - 59) //分鐘
# | .------------- hour (0 - 23) //小時
# | | .---------- day of month (1 - 31) //日期
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... //月份,能夠寫數字,也能夠寫英文的簡寫
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat //星期,0或7都 表示週日,也能夠寫成英文的簡寫
# | | | | |
# * * * * * user-name command to be executed //用戶,不寫用戶就是root 最後一列,是你要執 行的命令shell
[root@tianqi-01 ~]# vim
crontab -e 進入到crontab的配置文件中,用法和vim同樣windows
天天凌晨三點,執行123.sh腳本文件,正確的和錯誤的日誌都輸出到123.log文件中centos
0 3 * * * /bin/bash /usr/local/sbin/123.sh >/tmp/123.log 2>/tmp/123.logbash
由於是天天三點執行腳本,因此能夠寫成追加,天天都去記錄日誌session
0 3 * * * /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
若想1-10號,雙月去執行該腳本,後面就不在執行了——>只要 被2 整除,就符合條件
0 3 1-10 */2 * /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
只要周2和周5執行該文件
0 3 1-10 */2 2,5 /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
[root@tianqi-01 ~]# systemctl start crond
[root@tianqi-01 ~]# ps aux | grep cron
root 503 0.0 0.1 126232 1600 ? Ss 07:52 0:00 /usr/sbin/crond -n
root 2688 0.0 0.0 112660 980 pts/0 R+ 10:11 0:00 grep --color=auto cron
[root@tianqi-01 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-01-27 07:52:29 CST; 2h 20min ago
Main PID: 503 (crond)
CGroup: /system.slice/crond.service
└─503 /usr/sbin/crond -n
Jan 27 07:52:29 tianqi-01 systemd[1]: Started Command Scheduler.
Jan 27 07:52:29 tianqi-01 systemd[1]: Starting Command Scheduler...
Jan 27 07:52:30 tianqi-01 crond[503]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 42% if used.)
Jan 27 07:52:30 tianqi-01 crond[503]: (CRON) INFO (running with inotify support)
[root@tianqi-01 ~]#
停掉crond服務,查看狀態,沒有顏色顯示
[root@tianqi-01 ~]# systemctl stop crond
[root@tianqi-01 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sat 2018-01-27 10:15:03 CST; 16s ago
Process: 503 ExecStart=/usr/sbin/crond -n $CRONDARGS (code=exited, status=0/SUCCESS)
Main PID: 503 (code=exited, status=0/SUCCESS)
Jan 27 07:52:29 tianqi-01 systemd[1]: Started Command Scheduler.
Jan 27 07:52:29 tianqi-01 systemd[1]: Starting Command Scheduler...
Jan 27 07:52:30 tianqi-01 crond[503]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 42% if used.)
Jan 27 07:52:30 tianqi-01 crond[503]: (CRON) INFO (running with inotify support)
Jan 27 10:15:03 tianqi-01 systemd[1]: Stopping Command Scheduler...
Jan 27 10:15:03 tianqi-01 systemd[1]: Stopped Command Scheduler.
[root@tianqi-01 ~]#
要想執行任務計劃,必須開啓crond服務
[root@tianqi-01 ~]# systemctl start crond
[root@tianqi-01 ~]# crontab -e
1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 | xargs rm -f
[root@tianqi-01 ~]# crontab -l
1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 | xargs rm -f
[root@tianqi-01 ~]# cat /var/spool/cron/root
1 10 * 2 * /usr/bin/find /tmp/ -type f -mtime +100 | xargs rm -f
[root@tianqi-01 ~]# crontab -r
[root@tianqi-01 ~]# crontab -l
no crontab for root
[root@tianqi-01 ~]# crontab -u root -l
no crontab for root
[root@tianqi-01 ~]#
10.24 chkconfig工具
[root@tianqi-01 ~]# chkconfig --list //列出全部的系統服務
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@tianqi-01 ~]#
用top命令查看進程,發現systemd的pid是1,說明這個進程很是重要。
[root@tianqi-01 ~]# chkconfig network off
[root@tianqi-01 ~]# chkconfig --list //會看到2,3,4級別關閉了
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@tianqi-01 ~]#
注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。
若是您想列出 systemd 服務,請執行 'systemctl list-unit-files'。
欲查看對特定 target 啓用的服務請執行 'systemctl list-dependencies [target]'。
[root@tianqi-01 ~]# chkconfig network on //會看到2,3,4級別又開啓了
[root@tianqi-01 ~]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@tianqi-01 ~]#
注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。
若是您想列出 systemd 服務,請執行 'systemctl list-unit-files'。
欲查看對特定 target 啓用的服務請執行 'systemctl list-dependencies [target]'。
在系統中有七個級別等級列表:
在centos6中的 /etc/inittab 中定義開機的級別
在centos7中,已經沒有用了,不須要定義開機的級別了
[root@tianqi-01 ~]# vim /etc/inittab
# inittab is no longer used when using systemd. //已經再也不使用inittab級別了
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
[root@tianqi-01 ~]# chkconfig --level 3 network off //指定network中的3級別關閉
[root@tianqi-01 ~]# chkconfig --list //列出全部服務
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:off 4:on 5:on 6:off
[root@tianqi-01 ~]#
注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。
若是您想列出 systemd 服務,請執行 'systemctl list-unit-files'。
欲查看對特定 target 啓用的服務請執行 'systemctl list-dependencies [target]'。
[root@tianqi-01 ~]# chkconfig --level 35 network off
[root@tianqi-01 ~]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:off 4:on 5:off 6:off
[root@tianqi-01 ~]# chkconfig --level 345 network on
[root@tianqi-01 ~]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@tianqi-01 ~]#
[root@tianqi-01 ~]# cd /etc/init.d/
[root@tianqi-01 init.d]# ls
functions netconsole network README
[root@tianqi-01 init.d]# cp network 123
[root@tianqi-01 init.d]# ll
total 48
-rwxr-xr-x 1 root root 7293 Jan 27 10:53 123
-rw-r--r--. 1 root root 17500 May 3 2017 functions
-rwxr-xr-x. 1 root root 4334 May 3 2017 netconsole
-rwxr-xr-x. 1 root root 7293 May 3 2017 network
-rw-r--r--. 1 root root 1160 Aug 5 14:38 README
[root@tianqi-01 init.d]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@tianqi-01 init.d]# chkconfig --add 123 //將123加入到服務列表中
[root@tianqi-01 init.d]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
123 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@tianqi-01 init.d]#
[root@tianqi-01 init.d]# ls
123 functions netconsole network README
[root@tianqi-01 init.d]# vim 123 //名字無所謂,可是有固定的格式
#! /bin/bash //首先是一個shell腳本
#
# network Bring up/down networking
#
# chkconfig: 2345 10 90 //指定運行級別的啓動順序,第10位啓動,第90位關閉,這個格式必需要有
# description: Activates/Deactivates all network interfaces configured to \ //描述必需要有
# start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
# Should-Start: iptables ip6tables NetworkManager-wait-online NetworkManager $network-pre
# Short-Description: Bring up/down networking
# Description: Bring up/down networking
### END INIT INFO
# Source function library.
. /etc/init.d/functions
if [ ! -f /etc/sysconfig/network ]; then
exit 6
fi
. /etc/sysconfig/network
if [ -f /etc/sysconfig/pcmcia ]; then
. /etc/sysconfig/pcmcia
fi
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 6
# if the ip configuration utility isn't around we can't function.
[ -x /sbin/ip ] || exit 1
CWD=$(pwd)
cd /etc/sysconfig/network-scripts
注意:只有運行級別和描述有了,才能被識別。
[root@tianqi-01 init.d]# chkconfig --del 123
[root@tianqi-01 init.d]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@tianqi-01 init.d]#
10.25 systemd管理服務
[root@tianqi-01 init.d]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@tianqi-01 init.d]# systemctl list-unit-files //查看全部的服務,裏面不只有service,還有 socket,還有target
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
dev-hugepages.mount static
dev-mqueue.mount static
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-connections.mount static
sys-kernel-config.mount static
sys-kernel-debug.mount static
tmp.mount disabled
brandbot.path disabled
等等
[root@tianqi-01 init.d]# systemctl list-units --all --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
brandbot.service loaded inactive dead Flexible Branding Service
cpupower.service loaded inactive dead Configure CPU power related settings
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
● display-manager.service not-found inactive dead display-manager.service
dracut-shutdown.service loaded inactive dead Restore /run/initramfs
ebtables.service loaded inactive dead Ethernet Bridge Filtering tables
emergency.service loaded inactive dead Emergency Shell
等等,只列出了一部分
並在最下面,會告訴你 LOAD,ACTIVE,SUB是什麼意思
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
還會提醒,若想列出全部的 unit files,請使用 systemctl list-unit-files 命令
[root@tianqi-01 init.d]# systemctl enable crond.service //讓服務開機啓動
[root@tianqi-01 init.d]# systemctl disable crond //不讓開機啓動
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.
[root@tianqi-01 init.d]# systemctl enable crond
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.
[root@tianqi-01 init.d]#
[root@tianqi-01 init.d]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-01-27 10:16:25 CST; 1h 1min ago
Main PID: 2706 (crond)
CGroup: /system.slice/crond.service
└─2706 /usr/sbin/crond -n
Jan 27 10:16:25 tianqi-01 systemd[1]: Started Command Scheduler.
Jan 27 10:16:25 tianqi-01 systemd[1]: Starting Command Scheduler...
Jan 27 10:16:25 tianqi-01 crond[2706]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 97% if used.)
Jan 27 10:16:25 tianqi-01 crond[2706]: (CRON) INFO (running with inotify support)
Jan 27 10:16:25 tianqi-01 crond[2706]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
Jan 27 10:24:01 tianqi-01 crond[2706]: (root) RELOAD (/var/spool/cron/root)
[root@tianqi-01 init.d]#
[root@tianqi-01 init.d]# systemctl is-enabled crond
enabled
[root@tianqi-01 init.d]# systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.
[root@tianqi-01 init.d]# systemctl is-enabled crond
disabled
[root@tianqi-01 init.d]# systemctl enable crond
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.
[root@tianqi-01 init.d]#
[root@tianqi-01 init.d]# cat /etc/systemd/system/multi-user.target.wants/crond.service
[Unit]
Description=Command Scheduler
After=auditd.service systemd-user-sessions.service time-sync.target
[Service]
EnvironmentFile=/etc/sysconfig/crond
ExecStart=/usr/sbin/crond -n $CRONDARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
[root@tianqi-01 init.d]#
[root@tianqi-01 init.d]# ls -l /etc/systemd/system/multi-user.target.wants/crond.service
lrwxrwxrwx 1 root root 37 Jan 27 11:20 /etc/systemd/system/multi-user.target.wants/crond.service -> /usr/lib/systemd/system/crond.service
//是一個軟鏈接,從軟連接的右邊到左邊
[root@tianqi-01 init.d]# ll /usr/lib/systemd/system/crond.service //這裏纔是文件真正的路徑
-rw-r--r--. 1 root root 284 Aug 3 23:33 /usr/lib/systemd/system/crond.service
[root@tianqi-01 init.d]#
[root@tianqi-01 init.d]# systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.
[root@tianqi-01 init.d]# ls -l /etc/systemd/system/multi-user.target.wants/crond.service
ls: cannot access /etc/systemd/system/multi-user.target.wants/crond.service: No such file or directory
//這裏會把軟鏈接挪走
[root@tianqi-01 init.d]# systemctl enable crond
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.
[root@tianqi-01 init.d]# ls -l /etc/systemd/system/multi-user.target.wants/crond.service
lrwxrwxrwx 1 root root 37 Jan 27 11:25 /etc/systemd/system/multi-user.target.wants/crond.service -> /usr/lib/systemd/system/crond.service
[root@tianqi-01 init.d]#
//此時會從新建立軟連接
10.26 unit介紹
[root@tianqi-01 init.d]# ls /usr/lib/systemd/system
arp-ethers.service messagebus.service sys-fs-fuse-connections.mount
atd.service microcode.service sysinit.target
auditd.service multi-user.target sysinit.target.wants
autovt@.service multi-user.target.wants sys-kernel-config.mount
basic.target NetworkManager-dispatcher.service sys-kernel-debug.mount
basic.target.wants NetworkManager.service syslog.socket
blk-availability.service NetworkManager-wait-online.service syslog.target.wants
bluetooth.target network-online.target systemd-ask-password-console.path
等等,還有不少
[root@tianqi-01 init.d]#
[root@tianqi-01 system]# systemctl is-active crond.service //查看某個服務是否爲active
active
[root@tianqi-01 system]# systemctl is-enabled crond.service
enabled
10.27 target介紹
[root@tianqi-01 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
final.target static
getty.target static
graphical.target static
halt.target disabled
hibernate.target static
hybrid-sleep.target static
initrd-fs.target static
initrd-root-fs.target static
initrd-switch-root.target static
等等,僅截取了一部分
[root@tianqi-01 system]# systemctl list-dependencies multi-user.target
multi-user.target
● ├─atd.service
● ├─auditd.service
● ├─brandbot.path
● ├─crond.service
● ├─dbus.service
● ├─firewalld.service
● ├─irqbalance.service
● ├─kdump.service
● ├─network.service
● ├─NetworkManager.service
● ├─plymouth-quit-wait.service
● ├─plymouth-quit.service
● ├─postfix.service
● ├─rsyslog.service
● ├─sshd.service
● ├─systemd-ask-password-wall.path
● ├─systemd-logind.service
● ├─systemd-readahead-collect.service
● ├─systemd-readahead-replay.service
● ├─systemd-update-utmp-runlevel.service
● ├─systemd-user-sessions.service
● ├─tuned.service
● ├─vmtoolsd.service
● ├─basic.target
● │ ├─microcode.service
等等,僅列出一部分
[root@tianqi-01 system]# systemctl get-default
multi-user.target
[root@tianqi-01 system]# systemctl set-default multi-user.target //一樣出建立軟鏈接
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
[root@tianqi-01 system]# ls /etc/systemd/system/default.target
/etc/systemd/system/default.target
[root@tianqi-01 system]# ll !$
ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 41 Jan 27 11:51 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
[root@tianqi-01 system]#
[root@tianqi-01 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=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
[root@tianqi-01 system]#
[root@tianqi-01 system]# cat /usr/lib/systemd/system/crond.service
[Unit]
Description=Command Scheduler
After=auditd.service systemd-user-sessions.service time-sync.target
[Service]
EnvironmentFile=/etc/sysconfig/crond
ExecStart=/usr/sbin/crond -n $CRONDARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
[root@tianqi-01 system]#
友情連接:阿銘Linux