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 提 ...
随机推荐
- 算法很美,听我讲完这些Java经典算法包你爱上她
大家好,我是小羽. 对于编程来说的话,只有掌握了算法才是了解了编程的灵魂,算法对于新手来说的话,属实有点难度,但是以后想有更好的发展,得到更好的进阶的话,对算法进行系统的学习是重中之重的. 对于 Ja ...
- buuctf --pwn part2
pwn难啊! 1.[OGeek2019]babyrop 先check一下文件,开启了NX 在ida中没有找到system.'/bin/sh'等相关的字符,或许需要ROP绕过(废话,题目提示了) 查看到 ...
- Java 8 Optional
这是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象. package com.polaris; import java.util.A ...
- Python:读写文件(I/O) | 组织文件
1. I/O 概述 程序与用户交互涉及到程序的输入输出(I/O) 一种类型是字符串,通过input() 和 print() 函数以及数据类型转换类函数如(int()),实现数据的输入输出. 另一种类 ...
- Pandas的loc,iloc与ix的用法及区别
1.先来谈一谈loc,loc这个方法就是你有啥我就用啥,你没有的我不用,pandas对象的index,columns有什么,pd.loc[index,column],index就是pd.index的其 ...
- 1-web 服务器 框架。
1.静态网页与动态网页 1.静态网页:无法与服务器进行交互的网页. 2.动态网页:能够与服务器进行交互的网页. 2.web与服务器 1.web:网页(HTML,CSS,JS) 2.服务器:能够给用户提 ...
- 基于IMU与磁力计的手势提取手套-原理及其实现
手势提取依据所采用传感器的不同,可以分为基于视觉,基于惯性传感器,基于FSR,基于EMG传感器的方法.其中基于视觉的方法使用场景有限,且无法获取精确的手指关节角度:基于FSR的方法难以布置传感器且难以 ...
- 硬件篇-03-SLAM移动底盘电气设计
最近因为在忙毕设,专栏已经1个多月没更,对于托更我很抱歉.不过这几周真的没什么时间,Rick&Morty的最新集我到现在都还没看哈哈. 现在毕设已经搞得差不多了,水专栏文章的快乐生 ...
- win 远程桌面 ubuntu
开始 起因 因为工作需求经常要远程 局域网内的 Ubuntu设备 之前用的一直是 Teamviver 但是最近不知怎么了,Teamviver发病 打不开了,也懒得折腾了! 简单的记录一下 能用的几种连 ...
- Think5之删除单条数据功能
//删除单条学员信息 public function deleteStu(Request $request){ $stu_id = $request->param('id'); $result ...