本节内容
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 提 ...
随机推荐
-
小心as";陷阱";(c#)
有一种情况,使用as编译时没错,运行时也没错,但是结果错了. object a=1; string b=a as String; 由于a是objecy类型,是引用类型,所以可以用as转换,但是实际上b ...
-
【bzoj3160】【xsy1726】万径人踪灭
[bzoj3160]万径人踪灭 题意 给定一个由'a'和'b'构成的字符串,求不连续回文子序列的个数. \(n\leq 100000\) 分析 还是蛮不错的. 这道题基本上是自己想到的. 除了没有利用 ...
-
并查集 POJ 1988
#include <cstdio> #define N 30010 int pa[N]; //parent int siz_tree[N]; //size of tree int d[N] ...
-
hdu 2412 树形DP
思路:对于最大的人数很容易想到,就直接dp.但对于最大值是否唯一就需要应用辅助数组,isOnly[i][0]表示dp[i][0]是否唯一,同理isOnly[i][1]. 那么当(dp[v][0]> ...
-
Python之编程基础(编程语言分类)
一.编程语言简介 编程语言主要从以下几个角度进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 1.编译型跟解释型 编译型,其实他和汇编语言是一样的,也是有一个负责翻译的程 ...
-
redis缓存本地安装教程
http://www.runoob.com/redis/redis-install.html
-
Nginx+uwsgi+Django 的web应用环境部署-完整记录
Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django.Tornado.Flask.Twisted.Bottle和Web.py等 ...
-
Django模型层(1)
https://www.cnblogs.com/yuanchenqi/articles/8933283.html MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦, ...
-
uitableview中文排序问题
1,uitableview中涉及到排序的问题,查找资料后发现使用UILocalizedIndexedCollation可以很好处理中文和英文系统下中文的排序.而且如果第一个汉字首字母一样那么就会按照第 ...
-
SPOJ:Red John is Back(DP)
Red John has committed another murder. But this time, he doesn't leave a red smiley behind. What he ...