linux命令定时 linux如何实现定时任务

Linux进程及定时任务列出后台进程命令:jobs
后接:将程序放到后台执行,如,bash test.sh
fg num :将后台进程调到前台,如,fg 1
ctrl+z 可挂起进程,注:jobs显示的状态是stopped
bg num 可将进程在后台执行,比如执行ctrl+z挂起进程后 , 再用命令bg 1让进程在后台继续执行
语法:crontab [-u user] [-l | -r | -e]
ping的作用:连通性检查以及网速检查
ping -c 测试数据包数量 目的主机地址
如:ping -c 5
注:立即生效需要重启网卡:service network restart
ssh 用户名@ip地址
Linux设置定时任务《使用PSSH批量管理Linux》 一文中,已经学习了使用p.sh批量管理linux的技巧 。而很多时候,我们需要定时执行一些任务 , 或者需要定时执行一些批量任务 。因此,本文就来研究一下linux设置定时任务的方法 。
主要参考 Linux Crontab 定时任务 、 Linux定时任务Crontab命令详解和Linux 定时任务详解。
cron(crond)是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 。linux系统上面原本就有非常多的计划性工作 , 因此这个系统服务是默认启动的 。crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务 。另外 , 由于使用者自己也可以设置计划任务,所以,linux系统也提供了使用者控制计划任务的命令:crontab命令 。
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件 。
linux下的任务调度分为两类 , 系统任务调度和用户任务调度 。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等 。/etc/crontab 文件就是系统任务调度的配置文件 。
用户任务调度:用户定期要执行的工作 , 比如用户数据备份、定时邮件提醒等 。用户可以使用 crontab 工具来定制自己的计划任务 。所有用户定义的crontab文件都被保存在/var/spool/cron/crontabs/ 目录中,其文件名与用户名一致 。
假设我们使用的是Ubuntu14.04.5 Server版 , 查看 /etc/crontab ,内容为:
第一行SHELL变量指定了系统要使用哪个shell;第二行PATH变量指定了系统执行 命令的路径 。
接下来的命令格式为:
m h dom mon dow user command
英文全拼为:
minute hour day month week user commond
注意,/var/spool/cron 目录中的用户调度任务,没有user一项,因为文件名已经代表了user 。
在以上各个字段中,还可以使用以下特殊字符:
crontab命令格式为:
crontab [-u username] [file] [ -e | -l | -r ]
设置定时任务和时间紧密相关,如果服务器的时区时间设置和本地不同,就不能保证计划任务的正确执行 。所以使用crontab的第一步,是调节好服务器的时间 。
下面参考 Ubuntu 16.04将系统时间写入到硬件时间BIOS,对服务器时间进行调节 。
时间是有时区的,无论硬件时间还是操作系统时间 。hwclock的时区在/etc/default/rcS文件中设置,里面有一个参数UTC,默认值为yes,表示使用UTC时区,如果设置为no,那表示使用osclock的时区 。建议hwclock与osclock设置相同的时区 , 也就是no 。
1、查看服务器硬件时间
sudo hwclock -r  , 看到的时间格式为: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds
2、查看服务器系统时间
date ,看到的时间格式为: Wed May 23 11:02:41 HKT 2018
3、设置hwclock和osclock时区相同
sudo vim /etc/default/rcS,找到:
修改为:

推荐阅读