liunx计划任务

dd --一个强大的拷贝工具,拷贝文件或者物理块,它可以操作普通文件,也可以操作设备文件。

if=源文件名 in file

of=目标文件名 out file

bs=xxx 指定块大小 block size

count=n 指定复制块的数量

dd if=/dev/sda of=/opt/mbr bs=512 count=1 --备份主引导记录

dd if=/opt/mbr of=/dev/sda bs=512 count=1 --恢复

#dd if=/dev/cdrom of=/root/dvd.iso 拷贝光盘数据到root文件下,并保存为dvd.iso文件

#cat /dev/cdrom > /root/dvd.iso 查看文件内容重定向到/root/dvd.iso中

dd if=/dev/zero of=/root/1Gb.file bs=1M(1024) count=1024 测试硬盘读写速度

# dd if=/etc/services of=./txt 等价 # cp /etc/services ./txt

# dd if=/etc/services of=./txt bs=10 count=1 读取文件前10字符写入到 txt文件

--------------------------------------------------------------------------------------

计划任务:服务名atd.service

at -一次性计划任务,不能跨越0点。

# yum install -y at.x86_64 ---安装at 指令

#rpm -q at --确认at这个命令是否已经安装

###########################################################

# rpm -ql at

/usr/lib/systemd/system/atd.service ---at 服务名为atd

/etc/at.deny --拒绝用户

/etc/pam.d/atd --认证

/etc/rc.d/init.d/atd --at服务启动脚本

/usr/bin/at --设置计划任务的命令

/usr/bin/atq --查看at的任务列表

/usr/bin/atrm --删除任务

/var/spool/at/.SEQ --记录任务的编号

/var/spool/at/ --at 计划任务的数据目录,生成计划任务的可执行脚本文件在该目录下

<rhel/5/6>

# /etc/rc.d/init.d/atd status --查看atd服务的状态

# /etc/rc.d/init.d/atd start --启动atd服务

# chkconfig atd on --设置开机时启动at服务

<rhel7>

# systemctl status atd --查看atd服务的状态

# systemctl start atd --启动atd服务

# systemctl enable atd --设置开机时启动at服务

确保atd 服务启动工作(查看状态)

[root@localhost ~]# systemctl status atd

● atd.service - Job spooling tools

Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)

Active: active (running) since 四 2022-07-28 11:12:04 CST; 20min ago

# at 设置 计划任务

[root@localhost ~]# at 11:38 ----添加一个今天内的任务

at> echo "hello at"

at> wall "hello wall"

at> <EOT> <<<=====ctrl + d 表示输入结束

job 3 at Thu Jul 28 11:38:00 2022

-t 参数指定时间 format [YY]MMDDhhmm[.ss]

[root@localhost ~]# at -t 202207290500 ----指定在某天某时的计划任务

at> find / -type f -a -size 0 -exec rm -rf {} \;

at> reboot

at> <EOT>

-f 从文件中读取任务内容

# cat ./txt

find /usr -name "*.png" -exec tar -rf /tmp/png.tar.gz {} \;

# at -t 2302240430 -f ./txt

# atq --通过命令来查看at的任务列表 等价 # at -l

3 2011-08-10 15:13 a root

5 2011-08-10 16:00 a root

4 2011-08-10 16:14 a root

#at -c jobId 查看具体某个任务

[root@instructor ~]# ls /var/spool/at/ --通过文件路径查看任务

a00003014de731 a00004014de76e a00005014de760 spool

# atrm 2 ---删除2号at计划任务 ,等价 # at -r 2 或 #at -d 2

++++++++++++++++++++++

/etc/at.allow 如果这个文件存在,就不去考虑at.deny.而且他的作用:只允许文件里面出现的用户使用atd这个服务

# vim /etc/at.allow

test1

# rm -fr /etc/at.allow

/etc/at.deny 如果at.allow不存在的时候,才生效,作用:只拒绝里面的用户使用atd

+++++++++++++++++++++

crontab --循环计划任务

systemctl status crond.service ----检查是否已安装该服务

[root@instructor ~]# rpm -ql cronie

/etc/cron.d --系统默认任务划

/etc/cron.deny --只拒绝哪些用户不能他用crontab

/etc/pam.d/crond --pam认证

/etc/rc.d/init.d/crond --启动脚本

/etc/sysconfig/crond --额外配置文件

/usr/bin/crontab --计划任务的管理命令

/usr/sbin/crond --后台服务

/var/spool/cron/<username> --存放计划任务目录,以用户的名字命名

crontab创建任务计划:

-e 编辑任务计划,同于vi vim操作方法

-l 查看计划任务

-u 指定用户

# crontab -e --以当前用户身份创建任务计划

# crontab -u <username> -e --指定的用户身份创建任务计划,只有root拥有此权限

# crontab -l --查询当前用户的任务计划

# crontab -u <username> -l --查询指定用户的任务计划

# crontab -u root -r --删除用户的任务计划

# crontab -u uplooking -r --删除 uplooking用户的所有计划任务(只有root用户可以删除 和 查看 其他用户的任务)

循环计划任务文件编辑如下5项内容格式

crond以分钟/小时/日期/月/星期

# Example of job definition:

# .---------------- 分钟 (0 - 59)

# | .------------- 小时 (0 - 23)

# | | .---------- 日期 (1 - 31)

# | | | .------- 月份 (1 - 12) OR jna,feb,mar,apr ...

# | | | | .---- 星期几 (0 - 6) | (1-7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * 执行命令或者脚本

* ---表示任意

- --连接的值 5-7

/ --每 */2

, --或者 5,9

3-15/2 --- 从3 到 15的每 2

---------------------------------------------------------------------------------------

* * * * * command --每分钟

*/2 * * * * command --每隔2分钟

00 22 1 1 * command --每年1月1日22点执行任务计划

00 08,10,12 * * 1,3,5 command 每个星期1、3、5的8点、10点、12点执行任务计划

30 08 10-15 * * command --每月10到15号的08:30执行任务计划

为uplooking用户编辑任务计划:每天23:05执行命令,echo abc 到屏幕

crontab -eu uplooking

05 23 * * * /bin/echo abc | wall

date -s 23:04:00

每天的14-17点每隔10分钟输出 hello

crontab -eu uplooking

*/10 14-17 * * * echo hello

*/10 14-17 * * * /bin/echo “Hello World”

* * * * * /usr/bin/updatedb

查看某个用户的任务计划

crontab -l u uplooking

建立每分钟时间同步脚本

vi /bin/time.sh

#!/bin/bash

/usr/sbin/ntpdate 192.168.0.254 > /dev/null 2>&1

文件必须具有可执行

chmod u+x /bin/time.sh

假如以用户身份创建

crontab -e

* * * * * /bin/time.sh <- 不需要定义用户名

给kiki每分钟发送一份邮件

crontab -e

*/1 * * * * mail kiki < /home/test/lover.txt

*/1 * * * * mail station200.example.com < /home/test/lover.txt

练习:

1.每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中

[root@localhost ~]# crontab -e

#ps 注意 在任务计划中 % 要进行转意

* * * * * date +"\%F \%H:\%M:\%S" >> /tmp/mydate

2.每隔一分钟,就将当前日期和日历都追加到/home/mycal文件中

[root@localhost ~]# crontab -e

#如果任务需要多条命令时,用 ";" 隔开

* * * * * date +"\%F" >> /tmp/mycal;cal >> /tmp/mycal

3.在每天的凌晨1点的30到45分之间每隔一分钟,就将当前日期和日历都追加到/home/mycal文件中

# crontab -e

30-45 1 * * * date +"\%F" >> /tmp/mycal;cal >> /tmp/mycal

4.在每天的凌晨1点的30到45分之间每隔五分钟,就将当前日期和日历都追加到/home/mycal文件中

# crontab -e

30-45/5 1 * * * date +"\%F" >> /tmp/mycal;cal >> /tmp/mycal

5.写一条crontab条目,每天的22点钟删除/tmp下的所有文件

[root@localhost ~]# crontab -e

0 22 * * * rm -rf /tmp/*

6.每逢星期一下午5:50将/etc 目录下的所有目录和文件归档并压缩为文件:/opt/etcBackup.tar.gz

[root@localhost ~]# crontab -e

50 17 * * 1 tar -cf /op/etcBackup.tar.gz /etc/

7.在每周6的凌晨3:15执行/usr/local/check.sh, 并将标准输出和标准错误输出到/dev/null设备

[root@localhost ~]# crontab -e

15 03 * * 6 /usr/local/check.sh &> /dev/null

注意:脚本文件必须具备 x 执行权限

8.每个月的一号,零点十五执行重启网络服务

[root@localhost ~]# crontab -e

15 0 1 * * systemctl restart network

指定 run-parts 满足某个时间关系的批量任务

# vi /etc/crontab

# run-parts

0 * * * * root run-parts /etc/cron.hourly 注:表示每个小时整点,开始执行/etc/hourly目录下的可执行程序或脚本;

2 4 * * * root run-parts /etc/cron.daily 注:表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本;

22 4 * * 7 root run-parts /etc/cron.weekly 注:每年第7个周4点我22分,开始执行 /etc/cron.weekly目录下的可执行程序或脚本;

42 4 1 * * root run-parts /etc/cron.monthly 注:每月第1天的4点42分,开始执行/etc/cron.monthly目录下的可执行程序或脚本;

重启循环计划任务服务

# systemctl restart crond

例如 每小时都要做的任务,可以将任务脚本 写在 /etc/cron.hourly 目录之下,当时间条件满足是回执行该目下的所有任务

备份脚本

备份三天以内的内容

mkdir `date +%F '--date=3 day ago'`

mkdir /www/

cd /www

cd /www_backup

++++++

1.让它在工作日(星期1-5 || 单数月|| 每天|| 凌晨5点10执行 )

3.计划任务由u01执行,

4. 系统只允许u01与u02可以执行计划任务

echo "u01" >> /etc/cron.allow

echo "u02" >> /etc/cron.allow

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值