linux任务计划cron
[[email protected] ~]# crontab -e
no crontab for root - using an empty one
每天的凌晨3点 执行这个
0 3 * * * /usr/bin/touch /root/123.txt &>/dev/null
启动服务
[[email protected] ~]# systemctl start crond
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
chkconfig工具
[[email protected] ~]# 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]‘.
#表示centos6及以下版本用的是SysV,centos7用的是systemd。
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
必要参数
–add 开启指定的服务程序
–del 关闭指定的服务程序
–list 列出chkconfig所知道的所有服务
[[email protected] ~]# chkconfig --levels 235 network off #在235级别关闭
0:关机
1:单用户模式
2,3,4:差不多,多用户模式
5:图形化界面
6:重启
chkconfig network on/off
systemd管理服务
CentOS 7 使用systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。
列出所有可用单元
[[email protected] ~]# systemctl list-unit-files
列出所有运行中单元
systemctl list-units
列出所有失败的单元
systemctl --failed
检查某个单元是否启用
systemctl is-enabled network.service
Executing /sbin/chkconfig network --level=5
enabled
查看某个服务(单元)的状态
[[email protected] ~]# systemctl status network.service
Active: active (exited)
启动、重启、停止、重载服务
# systemctl start httpd.service
# systemctl restart httpd.service
# systemctl stop httpd.service
# systemctl reload httpd.service
# systemctl status httpd.service
激活/禁止自动启动
# systemctl enable httpd.service
# systemctl disable httpd.service
杀死服务
# systemctl kill httpd
unit介绍(单元)
unit的常见类型:
service unit:这类unit的文件扩展名为.service,主要用于定义系统服务(其扮演了在centos6上/etc/init.d/目录下的服务脚本的作用
target unit:这类unit的文件扩展名为.target,主要用于模拟实现"运行级别"的概念
device unit:这类unit文件扩展名为.device,用于定义内核识别的设备,然后udev利用systemd识别的硬件,完成创建设备文件名
mount unit:这类unit文件扩展名为.mount,主要用于定义文件系统挂载点
socket unit:这类unit文件扩展名为.socket,用于标识进程间通信用到的socket文件
snapshot unit:这类unit文件扩展名为.snapshot,主要用于实现管理系统快照
swap unit:这类unit文件扩展名为.swap,主要用于标识管理swap设备
automount unit:这类unit文件扩展名为.automount,主要用于文件系统自动挂载设备
path unit:这类unit文件扩展名为.path,主要用于定义文件系统中的文件或目录
systemctl list-units //列出正在运行的unit
systemctl list-units --all //列出所有,包括失败的或者inactive的
systemctl list-units --all --state=inactive //列出状态为inactive(列出所有没有运行的)
systemctl list-units --type=service//列出状态为active的service
systemctl is-active crond.service //查看某个服务是否正则运行
target介绍
在systemd中有一个叫做target的单元,也叫作目标单元。这个单元没有专用的配置选项,它只是以.target结尾的文件,它本身没有具体功能,你可以理解为类别,它的作用就是将一些单元汇聚在一起。通过下面的命令可以查看系统的target单元。
[[email protected] ~]# cat /usr/lib/systemd/system/iptables.service
[Unit]
Description=IPv4 firewall with iptables
Before=ip6tables.service
After=syslog.target
AssertPathExists=/etc/sysconfig/iptables
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/libexec/iptables/iptables.init start
ExecReload=/usr/libexec/iptables/iptables.init reload
ExecStop=/usr/libexec/iptables/iptables.init stop
Environment=BOOTUP=serial
Environment=CONSOLETYPE=serial
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=basic.target
systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit
systemctl get-default
ncies multi-user.target //查看指定target下面有哪些unit
systemctl get-default //查看系统默认的target
systemctl set-default multi-user.target //设置系统的target