linux进阶之计划任务及压缩归档
本节内容
1. at一次性计划任务(atd)
at 时间点 command
ctrl+d:保存
-l:查看计划任务
atrm:删除计划任务
atq:查看计划任务
2. crontab周期性计划任务(crond)
-l: 查看计划任务
-u:指定用户
-r:删除计划任务
-e:编辑计划任务
格式:
* * * * * command && command
分 时 日 月 周
0-59 0-23 1-31 1-12 0-6、1-7
*:表示范围内的所有
-: 表示一段范围
/:每隔多少
,:表示间隔
3. tar压缩归档
-c:创建压缩包
-v:显示过程
-z:采用gzip压缩
-f:指定文件名
-x:解压
-j:采用bzip2压缩
常用组合:
创建:czvf
解压:xzvf
计划任务
定时执行我们预先设置的指令
计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据
定时任务的安排方式:
一次性计划任务:执行单个任务之后就会自动退出
周期性计划任务:每隔一定的周期就要重复来做这个事情
一、at一次性计划任务
at语法格式:at 时间
1、需要下载at程序
第一步:下载at一次性计划任务
[root@renyz08 ~]# yum install at -y
第二步:启动atd服务并设置为开机自启
[root@renyz08 ~]# systemctl restart atd
[root@renyz08 ~]# systemctl enable atd
常用选项:
-l 列出at一次性计划任务(atq的别名)
-r 删除一次性计划任务(atrm的别名)
-d 删除一次性计划任务(atrm的别名)
-c 查看计划任务详情(cat连接命令行中列出的作业并输出到标准输出)
atq 列出at一次性计划任务(queue排队,队列)
atrm 删除一次性计划任务
2、设置at计划任务
例子1:在18:48分在/tmp目录下创建at_test文件
第一步:设置计划任务
[root@renyz08 tmp]# date
2019年 07月 15日 星期一 18:50:12 CST
[root@renyz08 tmp]# at 18:55 #at使用格式:at 时间
at> touch at_test #CMD1
at> mkdir at_test2 #CMD2
at> <EOT> #按住ctrl+D
job 3 at Mon Jul 15 18:55:00 2019
第二步:查看at计划任务
方法一:
[root@renyz08 tmp]# at -l
3 Mon Jul 15 18:55:00 2019 a root
方法二:
[root@renyz08 tmp]# atq
3 Mon Jul 15 18:55:00 2019 a root
第三步:再次查看计划任务
[root@renyz08 tmp]# atq #一次性计划任务执行成功之后就会退出
[root@renyz08 tmp]# ls #计划任务已经生效
at_test
at_test2
2、删除一次性计划任务
怎么删除计划任务?(先创建多个计划任务)
[root@renyz08 ~]# at 19:00
at> touch /tmp/at_test3
at> <EOT>
job 4 at Mon Jul 15 19:00:00 2019
[root@renyz08 ~]# at 19:01
at> touch /tmp/at_test4
at> <EOT>
job 5 at Mon Jul 15 19:01:00 2019
[root@renyz08 ~]# at 19:02
at> whoami
at> <EOT>
job 6 at Mon Jul 15 19:02:00 2019
[root@renyz08 ~]# atq
4 Mon Jul 15 19:00:00 2019 a root
5 Mon Jul 15 19:01:00 2019 a root
6 Mon Jul 15 19:02:00 2019 a root
删除一次性计划任务6
[root@renyz08 ~]# atrm 6 #格式:atrm 任务序号
[root@renyz08 ~]# atq #再次查看,6任务已删除
4 Mon Jul 15 19:00:00 2019 a root
5 Mon Jul 15 19:01:00 2019 a root
查看计划命令详情:
[root@renyz08 ~]# atq
7 Mon Jul 15 19:10:00 2019 a root
[root@renyz08 ~]# at -c 7 #选项-c可查看计划命令详情
touch at_test5 #打开后,在倒数第二行有显示计划命令的详情
3、at计划任务的特殊写法
[root@renyz08 ~]# at 20:00 2018-10-1 在某天
[root@renyz08 ~]# at now +10min 在 10分钟后执行
[root@renyz08 ~]# at 17:00 tomorrow 明天下午5点执行
[root@renyz08 ~]# at 6:00 pm +3 days 在3天以后的下午6点执行
二、crontab周期性计划任务
定期周期性的执行预先设定的指令
1、查看crond服务
crond服务实现了周期性计划任务,需要确保crond服务正在运行,一般系统已经默认开启自启
第一步:查看crond是否正在运行:
[root@renyz08 ~]# ps aux | grep crond
root 6514 0.0 0.1 126288 1640 ? Ss 03:12 0:00 /usr/sbin/crond -n
第二步:如果系统当中没有周期性计划任务:
yum install cronie -y
第三步:启动计划任务:
systemctl restart crond
第四步:查看crond生成文件
[root@renyz08 ~]# rpm -ql cronie
/etc/cron.d
/etc/cron.deny
/etc/sysconfig/crond
/usr/bin/crontab
/var/spool/cron
2、查看crond主文件:
[root@renyz08 ~]# vim /etc/crontab
SHELL=/bin/bash #指定shell解释器
PATH=/sbin:/bin:/usr/sbin:/usr/bin #指定命令在哪些路径下查找,计划任务命令需要写绝对路径!
MAILTO=root #发送邮件接收的用户/var/spool/mail/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
1* 指定分钟0-59
2* 执行小时0-23
3* 天 1-31
4* 月1-12
5* 星期几 0-6
CMD
注意:crond最小的执行的单位是分钟!
例子1:
* * * * * /usr/sbin/reboot
每天每分钟执行一次重启系统任务
例子2:凌晨三点钟执行一次系统重启任务
错误写法:
* 3 * * * /usr/sbin/reboot
注意:表示每天的三点钟开始,会执行60次系统重启
正确写法:
0 3 * * * /usr/sbin/reboot
总结:在周期性计划任务的时候要确保分钟要有数值,如果没有数值表示一个小时的60分钟之内都会执行相应的操作!
例子3:星期四的凌晨2点钟重启系统
0 2 * * 4 /usr/sbin/reboot
例子4: 4月2号下午4点钟执行一次系统重启
0 16 2 4 * /usr/sbin/reboot
注意:在写天和周的时候一定要把握好时间!
一般写天就不写周了,写周就不写天了!
例子5:星期天晚上11点钟执行一次系统重启
0 23 * * 0 /usr/sbin/reboot
3、四个符号
* 表示范围内的任意数值
- 表示一定的范围。比如分上:45-50 在45分到50分之间执行操作
/ 表示每隔多久执行操作 比如分上:*/10 表示每隔10分钟执行一次操作
, 表示指定多个时间点 比如分上:4,35,54 表示在4分,35分钟,54分钟执行操作
例子1:在每个月的4-10号之间凌晨三点钟执行一次系统重启操作
0 3 4-10 * * /usr/sbin/reboot
例子2:每天的凌晨2和3点各执行系统重启操作
0 2-3 * * * /usr/sbin/reboot
例子3:每天的凌晨2点钟,4点钟,10点钟执行一次系统重启操作
0 2,4,10 * * * /usr/sbin/reboot
例子4:凌晨2到10点每个小时重启一次系统
10 2-10 * * * /usr/sbin/reboot
4、在linux系统当中编写计划任务:
选项:
-e 编写计划任务(edit)
-r 删除计划任务(remove)
-l 查询计划任务(Displays the current crontab on standard output)
-u 指定给那个用户创建计划任务
例子1:19点42在/tmp下创建文件at_test5
[root@renyz08 ~]# crontab -e
42 19 * * * /usr/bin/touch /tmp/at_test5
验证:
[root@renyz08 ~]# ls /tmp
at_test
at_test2
at_test3
at_test4
at_test5
例子2:以时间命名文件
[root@renyz08 ~]# touch /tmp/`date "+%F_%T"`.txt
[root@renyz08 ~]# ls /tmp
2019-07-15_19:44:24.txt
例子3:在计划任务当中创建以时间命名的文件,每分钟创建一个
* * * * * /usr/bin/touch /tmp/`date "+\%F_\%T"`.txt
注意:在计划任务当中%前面都要加一个\进行转义
我们在写计划任务的时候其实本质就是创建了一个和用户同名的文件!
[root@renyz08 ~]# cat /var/spool/cron/root
42 19 * * * /usr/bin/touch /tmp/at_test5
例子4:给ren2用户创建计划任务
[root@renyz08 ~]# crontab -e -u ren2 #在给其他用户创建计划任务的时候需要使用-u选项指定用户名
[root@renyz08 ~]# crontab -l -u ren2 #查看的时候也是需要-u选项指定用户名
在该路径下创建了一个和用户名同名的文件:
[root@renyz08 ~]# cat /var/spool/cron/ren2
0 20 * * * /usr/bin/touch /tmp/at_test6
5、删除计划任务
a. 删除所有的计划任务
[root@renyz08 ~]# crontab -l
42 19 * * * /usr/bin/touch /tmp/at_test5
[root@renyz08 ~]# crontab -r #使用-r选型会把所有的计划任务都删掉
[root@renyz08 ~]# crontab -l
no crontab for root
b. 删除单条计划任务
[root@renyz08 ~]# crontab -l
#* * * * * /usr/bin/touch /tmp/`date "+\%T"`.txt1
* * * * * /usr/bin/touch /tmp/`date "+\%T"`.txt2
* * * * * /usr/bin/touch /tmp/`date "+\%T"`.txt3
* * * * * /usr/bin/touch /tmp/`date "+\%T"`.txt4
验证:
[root@renyz08 ~]# ls /tmp
20:01:02.txt2
20:01:02.txt3
20:01:02.txt4
6、计划任务使用管控
[root@renyz08 ~]# ls /etc/cron.deny(否认,拒绝)
例子1:不让ren3、ren4、ren5用户使用crond服务
[root@renyz08 ~]# vim /etc/cron.deny
[root@renyz08 ~]# cat /etc/cron.deny
ren3
ren4
ren5
切换至ken用户使用crontab创建计划任务被拒绝!
[root@renyz08 ~]# su - ren3
上一次登录:六 7月 13 11:32:37 CST 2019pts/1 上
[ren3@renyz08 ~]$ crontab -e
You (ren3) are not allowed to use this program (crontab)
See crontab(1) for more information
7、定时执行脚本
[root@renyz08 ~]# ls -ld /etc/cron.*
drwxr-xr-x. 2 root root 21 Apr 4 06:47 /etc/cron.d
drwxr-xr-x. 2 root root 42 Apr 4 06:47 /etc/cron.daily #每天执行一次
drwxr-xr-x. 2 root root 22 Jun 10 2014 /etc/cron.hourly #每小时执行一次
drwxr-xr-x. 2 root root 6 Jun 10 2014 /etc/cron.monthly #每月执行一次
drwxr-xr-x. 2 root root 6 Jun 10 2014 /etc/cron.weekly #每周执行一次
如何使用?
把脚本放到相应的目录之下,就会在相应的时间定期执行
但是需要注意的是脚本必须有执行权限
[root@renyz08 ~]# cat test.sh #编写脚本
#!/bin/bash
echo "123" >> /root/test
[root@renyz08 ~]# cp test.sh /etc/cron.hourly/ #脚本在该目录之下会每小时执行一次
[root@renyz08 ~]# chmod +x /etc/cron.hourly/test.sh #必须加执行权限
定时任务执行的两种方式:
1. crontab -e
2. 脚本放在相应的/etc/cron.*
三、tar压缩归档
定义:归档(archiving)就是将许多文件(或目录)打包成一个文件
目的:归档的目的就是方便备份、还原及文件的传输操作
功能:将多个文件(也可能包括目录,因为目录本身也是文件)放在一起存放到一个磁带或磁盘归档文件中。并且将来可以根据需要只还原归档文件中的某些指定的文件
常用选项:
c 创建压缩归档包(create)
z 使用gzip进行压缩
j 使用bzip2进行压缩(文件压缩的更小)
v 显示压缩归档的过程(verbose(冗长的,啰嗦)详细显示处理的文件)
f 指定归档名(file)
x 解压所归档包(extract提取,抽出)
t 列出包文件(list)
-C 指定解压包的位置(directory DIR转到指定的目录)
--exclude 压缩时除去部分内容(压缩时不压缩个别文件)
常用选项组合:
创建压缩归档包:czvf
解压缩归档包:xzvf xf
例子1:创建压缩归档tar包
[root@renyz08 tmp]# tar czvf at_test.tar.gz ./*或* #对当前路径下的所有文件进行打包,包文件名为text.tar.gz
例子2:解压压缩归档tar包
方法一:
[root@renyz08 tmp]# tar xzvf at_test.tar.gz
方法二:
[root@renyz08 tmp]# tar xf at_test.tar.gz
例子3:查看包文件
[root@renyz08 tmp]# tar tf at_test.tar.gz
例子4:打包当前目录下的文件并以时间进行命名
[root@renyz08 tmp]# tar czvf `date "+%f"`.tar.ga *
例子5:每天凌晨3点钟打包一次/test下所有的文件
[root@renyz08 tmp]# crontab -e
0 3 * * * /usr/bin/tar czf /tmp/`date "+\%F"`.tar.ga /test
例子6:解压包到指定的目录
[root@renyz08 test]# tar xf at_test.tar.gz -C /root
例子7:创建tar包排除某些文件
[root@renyz08 test]# tar czvf at_test.tar.gz * --exclude=test*
[root@renyz08 test]# tar tf *tar.gz
linux进阶之计划任务及压缩归档的更多相关文章
- Linux计划任务及压缩归档(week2_day1)--技术流ken
计划任务介绍 我们可以通过一些设置.来让电脑定时提醒我们该做什么事了.或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务.而遇到一些需要执行的事情或任务.我们也可以通过命令来告 ...
- 末学者笔记--Linux计划任务及压缩归档
一.计划任务 1.介绍: (1)定义:简单说就是通过一些设置,来使linux系统定时执行一些操作与任务. (2)作用:一般可执行一些周期性操作,也可定期备份数据. (3)可使用的命令:常用为at和cr ...
- Linux计划任务及压缩归档
计划任务介绍 自动执行,备份数据. crontab 和 at : at:它是一个可以处理仅执行一次就结束的指令 crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直 ...
- Linux计划任务与压缩归档
计划任务分为两种形式 第一种:定时性的:也就是例行,每隔一定的周期就要重复来做这个任务. 第二种:突发性的:临时决定,只执行一次的任务. 用到的命令有两个 at:它是一个可以处理仅执行一次的任务就结束 ...
- 20190409Liunx中计划任务及压缩归档week2_day1
计划任务介绍 我们可以通过一些设置.来让电脑定时提醒我们该做什么事了.或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务.而遇到一些需要执行的事情或任务.我们也可以通过命令来告 ...
- linux下用tar命令将当前目录下文件按子目录压缩归档
作者:iamlaosong 日常工作中,我们常常需要用tar命令将历史文件压缩归档,再删除源文件,以便节省空间.如果压缩归档成一个文件,就比较简单,用一条命令即可,如命令:tar -czf bak20 ...
- Linux基础(05)、Linux进阶命令
目录 一.进阶命令 二.系统命令 三.压缩和归档 3.1.归档 3.2.压缩 3.3.归档并压缩 归档.接档:tar -cf.tar -tvf 压缩.解压:gzip.gunzip 归档并压缩:tar ...
- 大数据学习之Linux进阶02
大数据学习之Linux进阶 1-> 配置IP 1)修改配置文件 vi /sysconfig/network-scripts/ifcfg-eno16777736 2)注释掉dhcp #BOOTPR ...
- Linux常用命令大全 --- 文件备份和压缩命令
在linux中,常用的文件压缩工具有gzip.bzip2.zip . bzip2是最理想的压缩工具,它提供了最大限度的压缩.zip 兼容性好windows也支持 1.bzip2 命令 在shell 提 ...
随机推荐
- SwiftUI 简明教程之文本与图片
本文为 Eul 样章,如果您喜欢,请移步 AppStore/Eul 查看更多内容. Eul 是一款 SwiftUI & Combine 教程类 App(iOS.macOS),以文章(文字.图片 ...
- teprunner测试平台测试计划批量运行用例
本文开发内容 上一篇文章已经把pytest引入到测试平台中,通过多线程和多进程的方式,运行测试用例.有了这个基础,做批量运行用例的功能就很简单了,只需要前端传入一个CaseList即可.本文的后端代码 ...
- Spring (三)SpringAoP
1.Spring 的 AOP 简介 1.1 什么是 AOP AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能 ...
- 自定义grub主题
1 概述 自定义grub引导菜单的主题,笔者的linux是deepin,感觉默认的grub主题不太好看,嗯,没办法,就是想改了. 这篇文章主要是修改/boot/grub/grub.cfg以及/boot ...
- day19.进程通信与线程1
1 进程Queue介绍 1 进程间数据隔离,两个进程进行通信,借助于Queue 2 进程间通信:IPC -借助于Queue实现进程间通信 -借助于文件 -借助于数据库 -借助于消息队列:rabbitm ...
- 机器人走方格-51nod解题
M * N的方格,一个机器人从左上走到右下,只能向右或向下走. 有多少种不同的走法? 注意:给定 M, N 是一个正整数. 示例 输入: 1行, 2个数M,N,中间用空格隔开.(2 <= m,n ...
- Windows下反(反)调试技术汇总
反调试技术,恶意代码用它识别是否被调试,或者让调试器失效.恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间.为了阻止调试器的分析,当 ...
- 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析
前言 在本系列的文章中,对每一个病毒分析的最后一个部分,若无特殊情况,我都会采用逆向分析的手段来为读者彻底剖析目标病毒.但是之前的"熊猫烧香"病毒,我用了三篇文章的篇幅(每篇250 ...
- Python简易远控(单线程版)
1. 技术:管道通信,流文件处理,socket基础 2. Tips: 默认IP:127.0.0.1 默认端口:7676 3. 代码样例: 服务端: #!/usr/bin/env python # en ...
- CVE-2012-0774:Adobe Reader TrueType 字体整数溢出漏洞调试分析
0x01 TrueType 字体 TTF 字体是 Apple 和 Microsoft 两家公司共同推出的字体格式,现在已经广泛的运用于 Windows 操作系统,其中 PDF 文档也可以嵌入 TTF ...