定时任务

Posted basa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定时任务相关的知识,希望对你有一定的参考价值。

1 用户管理查看命令

w:? ??? ??? ??显示系统连接用户信息/显示负载信息
id:? ? ? ? ? ? 查看用户uid gid 以及所属组信息
last:? ? ? ? ?记录系统有哪些用户曾经登录过
lastlog:? ? 记录系统中所有用户,登录系统使用情况
whoami:? ?显示当前用户信息

2 系统相关检查命令

top:检查负载情况,内存使用,cpu使用情况,每个进程消耗的系统资源情况
us 用户态信息
sy 内核态信息
id 空闲状态
htop:top的升级版
iotop:检查确认磁盘的IO消耗情况
free:显示内存信息
iftop:检查网络宽带使用情况
netstat(ss)-lntup|grep ssh:检查网络状态信息命令 已知服务,获得对应端口号
-l 列表显示网络服务状态信息
-n 网络中的端口号码以数字形式显示
-t 显示网络的tcp协议服务信息
-u 显示网络的udp洗衣服务信息
-p 网络协议服务进程信息进行显示
lsof -i:检查网络服务信息

3 安全操作命令

chattr:将文件数据进行上锁命令
chattr +i 文件名? ??对文件进行上锁
chattr -i 文件名? ? ?对文件进行解锁
lsattr:查看文件锁定状态

4 定时任务

4.1 作用:

自动备份数据,自动同步时间,自动清空数据

4.2 实现方法:

cronie

4.3 实现方式:系统默认定时任务

/etc/cron.daily 每天执行的任务
/etc/cron.hourly 每小时执行的任务
/etc/cron.monthly 每个月执行的任务
etc/cron.weekly 每周执行的任务
logrotate 脚本 实现日志文件切割功能
切割文件过程:1、将源文件进行重命名 2、重启程序服务,生成源文件

4.4 自定义定时任务:

一个命令:
crontab -l:显示定时任务配置信息
crontab -e:编写定时任务配置信息 (用visudo)
两个文件:
/var/spool/cron/root(oldboy) : root用户编写的定时任务配置信息 /etc/sudoers
/var/log/cron: 定时任务日志文件(排错)
/etc/cron.deny: 定义定时任务用户黑名单 (了解)

4.5 定时任务编写方法

(1)定时任务服务是否开启:ps -ef|grep cron
(2)编写定时任务:crontab -e
(3)格式信息:* * * * * 具体做的事情
测验1:每天晚上9:30 上床睡觉 ? ??30 21 * * * 上床睡觉
测验2:每天早上7:00 起床上学 ? ??00 07 * * * 起床上学
测验3:每个一个小时,下课休息? ?00 * /1 * 下课休息
测验4:上午10点整11点整12点整 都要进行休息 ? ?? 00 10-12 * * * 进行休息
测验5:上午10点整12点整 下午15点整17点整休息 ? ?? 00 10,12,15,17 * * * 休息
测验6:每月5号,周三 晚上12点整 睡觉 ps:日期和星期不能同时出现
* 每 每分钟、每小时、每天、每月、每周
/(每隔)/1 每隔一分钟、每隔一小时、每隔一天、每隔一月、每隔一周
- 连续间隔时间 10-12 10 11 12
,不连续间隔时间 10,13
1 编写定时任务实践
(1)每隔三分钟,进行时间同步
ntpdate ntp1.aliyun.com
(2)编辑定时任务时间信息
cronatb -e
技术图片
/3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
技术图片
(3)编写定时任务注释说明
# 完成时间同步
/3 * * * /usr/sbin/ntpdate ntp1.aliyun.com
技术图片
(4)查看定时任务
tail -f /var/log/cron
技术图片


每隔1小时的整点,执行数据备份任务 (cp /etc/hosts /tmp/hosts.bak)
①00 /1 * * cp /etc/hosts /tmp/hosts.bak

00 */1 * * * cp /etc/hosts /tmp/hosts.`date +\%T`   定时任务中命令信息中特殊符号无法直接识别

每隔1分钟,将/etc/hosts /etc/rc.local /server/scripts 进行压缩,生成压缩有时间信息
压缩包保存在/tmp目录/oldboy_10:00:00.tar.gz
①执行命令测试
tar zchf /tmp/oldboy_$(date +%H-%M).tar.gz ./etc/hosts ./etc/rc.local ./server/scripts/
技术图片
②编写脚本信息
touch yasuo.sh
技术图片
#!/bin/bash
tar zchf /tmp/oldboy_$(date +%H-%M).tar.gz ./etc/hosts ./etc/rc.local ./server/scripts/
技术图片
③测试执行脚本
/usr/bin/sh /root/yasuo.sh
④编写定时任务
crontab -e
/1 * * * /usr/bin/sh /root/yasuo.sh &>/dev/null
&>/dev/null:将正确错误信息追加到黑洞中
2>/dev/null:直将错误信息追加到黑洞中

5 定时任务编写注意事项:

(1)定时任务中命令信息最好使用绝对路径
定时任务执行时识别PATH环境变量信息:/usr/bin:/bin
(2)定时任务中命令信息中特殊符号无法直接识别
方法一:特殊符号加 <br /> 方法二:将命令信息写成脚本
(3)定时任务编写不正确,会产生错误信息
postfix 邮件服务开启
错误信息存放位置:/var/spool/mail/root block占用过多 造成磁盘存储资源减少
postfix 邮件服务关闭
错误信息存放位置:/var/spool/postfix/maildrop/ inode占用过多 造成磁盘存储资源减少
解决方式:将邮件服务开启,将产生错误信息追加到黑洞中
crontab -e
* /1 * * usr//bin/sh /server/scripts/backup_file.sh &>/dev/null
server/scripts:脚本文件夹
backup_file.sh:脚本文件名
(4)执行一些命令时,尽量较少命令信息输出(错误输出/正确输出)
(5)完成任务大于两个命令,就需要编写脚本
(6)脚本编写是需要有注释信息 #!/bin/bash
(7)定时任务执行java程序操作时,需要编写环境变量 !!!
需要在脚本里定时java程序环境变量
JAVAHOME="XXXX"
CLASSPATH="XXXX"
PATH="$PATH:JAVAXXX"


定时任务时间格式
技术图片

以上是关于定时任务的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot的定时任务

SpringBoot的定时任务

SpringBoot的定时任务

spring实现动态定时任务

数据库定时执行sql mysql定时任务 event 执行定时任务 和sql server定时任务 作业执行定时任务

Linux设置定时任务