计划任务
温馨提示:可以把命令关键字,作为名字方便熟练命令
1、 以自己的名字创建一个普通用户,密码是:123.com。并以这个用户制定一个at计划: 要求在2020-09-15号删除/tmp/time.txt文件。
1)创建用户psef
2)创建测试文件
3)编辑计划任务配置文件
先查命令的绝对路径-编辑-Ctrl D 提交任务
注意:若果不报错,但是psef用户无法达到自动删除文件的效果,可能是权限问题。在/etc/下创建at.allow文件,输入此用户名,即可解决
4)验证,用root用户更改时间到指定日期,查看此文件,找不到,成功
设置系统时间
查看文件
2、 root身份,制定一个计划任务: 2021-09-12号开始到2021-09-15号 ,每隔5分钟发送一次本机的/var/log/message文件到/tmp目录下,并且message文件要加上具体时间。
1)编辑shell脚本
tar -zcP -f /tmp/log_$(date +%Y-%m-%d)''$(date +%H:%M:%S).tar.gz /var/log/messages
''之间有空格
2)编辑计划任务配置文件
3)验证,到预定时间会查看到此文件,注意:解压此文件带的是整个绝对路径
解压(/var/log/messages而不是messages)
3、设置本主机拒绝所有普通用户执行crontab周期性任务,仅允许以自己名字命名的用户执行at一次性任务。
更改配置文件:
验证:
其他用户,无权限。
使用允许权限用户psef登录,可以执行:
4、 从现在开始,/root用户每隔2个小时,打印一次时间信息到/tmp/time.txt文件中,怎样使第一题中的任务能成功执行。
1)编辑shell脚本
#!/bin/bash
echo " $(date +%Y-%m-%d)''$(date +%H:%M:%S) " >> /tmp/time.txt
2)创建计划任务
3)验证,调整系统时间到接近2小时候
5、从base01上,每月31号晚上3点钟,发送本主机的日志文件/var/log/messages到base02主机的/tmp/目录下,且要加上具体时间。必须先保证两个主机互通
设置免密登录
1)创建免密码登录用户
base02配置:
[root@localhost log]# vim /etc/ssh/sshd_config
2)base01配置
生成密钥对:
[root@localhost lib]# ssh-keygen -t ecdsa
上传到base02:
3)验证:在base01能登录到base02(192.168.2.2)
创建计划任务
编辑shell脚本,脚本还可以做优化,做条件测试,省略
#!/bin/bash
#create file upload
tar -zcP -f /tmp/log_$(date +%Y-%m-%d)''$(date +%H:%M).tar.gz /var/log/messages
scp /tmp/log_$(date +%Y-%m-%d)''$(date+%H:%M).tar.gz root@192.168.2.2:/tmp
如图:
编辑计划任务配置文件
验证:调整系统时间到10月31日3:00
查看base02主机自动产生备份文件
扩展一:
1、编写一个sh脚本 放在/root目录下,脚本名称自定义。备份脚本用tar命令打包并压缩 /etc /var两个目录
添加以下内容:
#!/bin/bash
tar zcf /backup/bak$(date +%Y-%m-%d).tar.gz /etc/ /var/
验证:
2、编写一个脚本 备份/var/log下 所有log结尾的文件,和messages系统日志文件。
3、在每周日晚上2点30分,全量备份整个/etc/ 和/var/log目录 到/backup目录下,要求压缩并打包成当前系统日期年月日,时分秒.tar.gz,平时周一到周六每天晚上12点只备份/var/log目录下所有以log结尾的文件,还有messages系统日志。
编辑脚本:
编辑计划任务配置文件:
4、编写一个脚本 查找当前系统内/var/log目录下,大于100mb的日志文件 使用dd命令造3个文件 1.log 2.log test.log 大于100m 自动定时清理 每个月的每周日晚上0点,清理var/log目录下所有大于100M的log结尾的文件。
1)创建测试文件
2)编辑shell脚本
添加以下内容:
不要忘了,设置执行权
3)创建计划任务
4)验证:调整时间,过几十秒查看
符合条件的文件被自动清理,查不到之前创建的测试文件
扩展二:
编写两个脚本 脚本
1、 写计划任务,每周日凌晨2点备份/var/log目录;周一到周六做增量备份 ,备份目录自定义。
分析:全量备份,先写脚本,到时间执行即可
1)创建备份目录
2)编辑备份shell脚本
3)创建计划任务
4)验证:调整系统时间到周日,查看备份文件
周一到周六做增量备份 ,备份目录自定义。
分析:增量备份,使用rsync只备份上次备份之后新增加的文件
1)创建备份源目录/test,备份目标目录/backup
如果系统安装了rsync服务则直接编辑脚本。
测试脚本
创建旧文件
执行脚本,查看备份目录
模拟新增文件,在测试目录test下创建文件,执行脚本,查看到备份了新增加的文件,提示:发送文件列表,只显示新增文件,证明,增量备份成功。
2)创建计划任务
2 、写一个一次性的备份 整个/etc目录的脚本 之后运行脚本, 并调整这个脚本的运行优先级别 要求优先级高。
1)编辑脚本:
2)由于优先级最高是0,默认当前运行的进程优先级是0,所以,调整命令验证不出效果
运行脚本,使用ps -ef | grep tar查看进程PID
命令top -p 4601 -H查看进程详细信息,进程PID是NI项,已经是最高0
以优先级为-20的为例,使用命令,可将其调到最高
验证: