一、Linux系统的任务计划
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
关于cron任务计划功能的操作都是通过crontab这个命令来完成的。
常用的选项有:
-u :指定某个用户,不加-u选项则为当前用户;
-e :制定计划任务;
-l :列出计划任务;
-r :删除计划任务。
实例:
1、创建一个计划任务:
[[email protected] ~]# crontab -e
no crontab for root - using an empty one
使用 crontab -e 来进行编写任务计划,这实际上是使用vim工具打开了crontab的配置文件,我们写下如下内容:
01 10 05 02 1 echo "OK" > /root/crob.log
每个字段的数字从左到右分别表示为:分,时,日,月,周,命令行。而上面的例子的含义是:在2月5日(这一天必须是星期1)的10点01分执行命令echo "ok" > /root/cron.log
。
这是的时间范围是:
1、分范围0-59,时范围0-23,日范围0-31,月范围0-12,周1-7
2、可用格式1-5表示一个范围1到5
3、可用格式1,2,3,表示1或者2或者3
4、可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
crontab -e
实际上是打开了 /var/spool/cron/username
(如果是root则打开的是/var/spool/cron/root)这个文件。使用的是vim编辑器,所以要保存的话则在命令模式下输入:wq即可。但是,你千万不要直接去编辑那个文件,因为可能会出错,所以一定要使用crontab -e
来编辑。
2、查看已经设定的任务计划:
[[email protected] ~]# crontab -l
01 10 05 02 1 echo "OK" > /root/cron.log
3、保证crond服务的启动:
[[email protected] ~]# ps aux | grep crond //查看crond启动状态
root 535 0.0 0.0 126264 1640 ? Ss 1月25 0:01 /usr/sbin/crond -n
root 9166 0.0 0.0 112676 976 pts/0 R+ 16:28 0:00 grep --color=auto cron
[[email protected] ~]# systemctl stop crond.service //停止crond服务
[[email protected] ~]# ps aux | grep cron
root 9183 0.0 0.0 112676 972 pts/0 R+ 16:29 0:00 grep --color=auto cron
[[email protected] ~]# systemctl start crond.service //开始crond服务
[[email protected] ~]# ps aux | grep cron
root 9193 0.0 0.0 126232 1580 ? Ss 16:29 0:00 /usr/sbin/crond -n
root 9195 0.0 0.0 112676 976 pts/0 S+ 16:29 0:00 grep --color=auto cron
二、Linux系统服务管理
1、chkconfig服务管理工具
chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
chkconfig主要用于CentOS6,Linux系统所有预设服务都可以通过查看/etc/init.d/
目录:
只能看到几个文件,因为CentOS7不再延续6的服务管理方案,但是依然可以使用这个命令。
命令实例:
chkconfig --list //列出所有的服务来及每级别开启状态
chkconfig --level 3 network off //network服务3级别关闭
chkconfig --level 345 network off //network服务345级别奢望i关闭
chkconfig --del network //删除服务
chkconfig --add network //增加服务
等级代号含义:
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
2、systemd服务管理
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。首先列出所有系统服务:
systemctl list-units --all --type=service
这些服务的对应的脚本文件在/usr/lib/systemd/system/
目录下。
几个常用服务相关的命令:
systemctl enable crond.service //让服务开机启动
systemctl disable crond //不让开机启动
systemctl status crond //查看状态
systemctl stop crond //停止服务
systemctl start crond //启动服务
systemctl restart crond //重启服务
systemctl is-enabled crond //检查服务是否开机启动
1、unit
ls /usr/lib/systemd/system //系统所有unit
unit类型:
service: 系统服务
target: 多个unit组成的组
device: 硬件设备
mount: 文件系统挂载点
automount: 自动挂载点
path: 文件或路径
scope: 不是由systemd 启动的外部进程
slice: 进程组
snapshot: systemd快照
socket: 进程间通信套接字
swap: swap文件
timer: 定时器
以上每种类型的文件都为一个unit,正是这些unit才组成了系统的各个资源。
与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
2、target
系统为了方便管理用target来管理unit。
几个关于target的命令:
systemctl list-unit-files --type=target //查看所有target
systemctl list-dependencies multi-usrt.target //查看指定target下面有哪些unit
systemctl get-default //查看系统默认的target
systemctl set-default multi-user.target //设置默认target
service、unit和target之间的关系:
1、一个service属于一种类型的unit
2、多个unit组成了一个target
3一个target里面包含了多个service,可以查看/usr/lib/systemd/system/sshd.service
看[install]部分,定义了该属于那个target
原文地址:http://blog.51cto.com/3069201/2066466