当前位置:   article > 正文

mail,at,batch,sleep小练习

每4 小时备份一次/etc 目录至/backup 目录中,保存的文件名称格式为 “etc-yyyy-mm

1)如果有自己喜欢的电影,公司服务器,晚上访问量小,带宽使用小,此时用个at让晚上下载或白天用batch命令,让内核决定什么时候下载。

2)如何每天0点对数据库备份或etc目录备份。对于每天重复的事情crontab可以解决

3)磁盘满了给root发mail

4)如何实现秒级别的执行命令:在每分钟到达时,运行一个命令,需要60秒,就行了

5)如何实现每7分钟运行一次任务?

6)每4小时备份一次/etc目录至/backup目录中,保存的文件名称格式为“etc-yyyy-mm-dd-HH.tar.xz”;

7)每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”;

8)每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中;

9)工作日时间内,每小执行一次“ip addr show”命令;




batch 根据cpu负载决定何时运行命令

sleep #{s,m,h} 睡


1)如果有自己喜欢的电影,公司服务器,晚上访问量小,带宽使用小,此时用个at让晚上下载或白天用batch命令,让内核决定什么时候下载。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
1、确定时间:例如,0:00 下载 
[root@localhost ~] # at -v 0am tomorrow
Sat Aug 26 00:00:00 2017
 
2、将你所需要下载的电影链接放在 /tmp/a . file 文件中
# vim /tmp/a.file
http: //dl134 .80s.im:920 /1708/ [醉玲珑]第26集/[醉玲珑]第26集_bd.mp4
 
http: //dl134 .80s.im:920 /1708/ [醉玲珑]第25集/[醉玲珑]第25集_bd.mp4
 
http: //dl136 .80s.im:920 /1708/ [醉玲珑]第24集/[醉玲珑]第24集_bd.mp4
 
http: //dl136 .80s.im:920 /1708/ [醉玲珑]第23集/[醉玲珑]第23集_bd.mp4
 
http: //dl138 .80s.im:920 /1708/ [醉玲珑]第22集/[醉玲珑]第22集_bd.mp4
 
http: //dl138 .80s.im:920 /1708/ [醉玲珑]第21集/[醉玲珑]第21集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第20集/[醉玲珑]第20集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第19集/[醉玲珑]第19集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第18集/[醉玲珑]第18集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第17集/[醉玲珑]第17集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第16集/[醉玲珑]第16集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第15集/[醉玲珑]第15集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第14集/[醉玲珑]第14集_bd.mp4
 
http: //dl133 .80s.im:920 /1708/ [醉玲珑]第13集/[醉玲珑]第13集_bd.mp4
 
http: //dl127 .80s.im:920 /1707/ [醉玲珑]第12集/[醉玲珑]第12集_bd.mp4
 
http: //dl127 .80s.im:920 /1707/ [醉玲珑]第11集/[醉玲珑]第11集_bd.mp4
 
http: //dl127 .80s.im:920 /1707/ [醉玲珑]第10集/[醉玲珑]第10集_bd.mp4
 
http: //dl127 .80s.im:920 /1707/ [醉玲珑]第09集/[醉玲珑]第09集_bd.mp4
 
http: //dl130 .80s.im:920 /1707/ [醉玲珑]第08集/[醉玲珑]第08集_bd.mp4
 
http: //dl130 .80s.im:920 /1707/ [醉玲珑]第07集/[醉玲珑]第07集_bd.mp4
 
http: //dl132 .80s.im:920 /1707/ [醉玲珑]第06集/[醉玲珑]第06集_bd.mp4
 
http: //dl132 .80s.im:920 /1707/ [醉玲珑]第05集/[醉玲珑]第05集_bd.mp4
 
http: //dl131 .80s.im:920 /1707/ [醉玲珑]第04集/[醉玲珑]第04集_bd.mp4
 
http: //dl131 .80s.im:920 /1707/ [醉玲珑]第03集/[醉玲珑]第03集_bd.mp4
 
http: //dl132 .80s.im:920 /1707/ [醉玲珑]第02集/[醉玲珑]第02集_bd.mp4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  
3、生成脚本:
[root@localhost ~] # touchsc 
Enter a script pathname[default: working directory]:  /tmp/a .sh
script pathname:  /tmp/a .sh
 
[root@localhost ~] # vim /tmp/a.sh
#!/bin/bash
# Version: 0.0.14
# Author: Lcc.org
# Description: Small toys
 
PATH= /bin : /sbin : /usr/bin : /usr/sbin
 
CONFIG_FILE= /tmp/a . file
[ -s $CONFIG_FILE ] && wget -q -c -i $CONFIG_FILE -P ~ /VIDEO
1
2
3
4
5
4 、测试脚本能否正常运行
测试脚本语法
[root@localhost ~]# bash -n /tmp/a.sh
测试命令执行
[root@localhost ~]# bash  /tmp/a.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5、生成任务
[root@localhost ~] # at -f /tmp/a.sh -v now
Fri Aug 25 15:33:00 2017
 
job 17 at 2017-08-25 15:33
 
2)
[root@localhost ~] # echo "/bin/bash /tmp/a.sh" | at now
[root@localhost ~] # at -l
16  2017-08-25 15:28 = root  ##正在执行的任务
 
3) [root@localhost ~] # at now < /tmp/a.sh
 
4) [root@localhost ~] # batch
[root@localhost ~] # batch
at>  /bin/bash  /tmp/a .sh
at> <EOT>
job 18 at 2017-08-25 15:39
[root@localhost ~] # at -l
18  2017-08-25 15:39 = root
1
2
3
6、查看任务
[root@localhost ~] # atq
15  2017-08-26 00:00 a root
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
7、查看任务属性
[root@localhost ~] # at -c 15
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask  22
HOSTNAME=localhost.localdomain;  export  HOSTNAME
SHELL= /bin/bash export  SHELL
HISTSIZE=1000;  export  HISTSIZE
SSH_CLIENT=192.168.1.100\ 53158\ 22;  export  SSH_CLIENT
SSH_TTY= /dev/pts/2 export  SSH_TTY
USER=root;  export  USER
LS_COLORS=rs=0:di=01\;34: ln =01\;36:mh=00:pi=40\;33:so=01\;35: do =01\;35:bd=40\;33\;01: cd =40\;33\;01:or=40\;31\;01:mi=01\;05\;37\;41: su =37\;41:sg=30\;43:ca=30\;41:tw=30\;42:ow=34\;42:st=37\;44:ex=01\;32:\*. tar =01\;31:\*.tgz=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lz=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.bz=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.rar=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.jpg=01\;35:\*.jpeg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.pbm=01\;35:\*.pgm=01\;35:\*.ppm=01\;35:\*.tga=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.tif=01\;35:\*.tiff=01\;35:\*.png=01\;35:\*.svg=01\;35:\*.svgz=01\;35:\*.mng=01\;35:\*.pcx=01\;35:\*.mov=01\;35:\*.mpg=01\;35:\*.mpeg=01\;35:\*.m2v=01\;35:\*.mkv=01\;35:\*.ogm=01\;35:\*.mp4=01\;35:\*.m4v=01\;35:\*.mp4v=01\;35:\*.vob=01\;35:\*.qt=01\;35:\*.nuv=01\;35:\*.wmv=01\;35:\*.asf=01\;35:\*. rm =01\;35:\*.rmvb=01\;35:\*.flc=01\;35:\*.avi=01\;35:\*.fli=01\;35:\*.flv=01\;35:\*.gl=01\;35:\*.dl=01\;35:\*.xcf=01\;35:\*.xwd=01\;35:\*.yuv=01\;35:\*.cgm=01\;35:\*.emf=01\;35:\*.axv=01\;35:\*.anx=01\;35:\*.ogv=01\;35:\*.ogx=01\;35:\*.aac=01\;36:\*.au=01\;36:\*.flac=01\;36:\*.mid=01\;36:\*.midi=01\;36:\*.mka=01\;36:\*.mp3=01\;36:\*.mpc=01\;36:\*.ogg=01\;36:\*.ra=01\;36:\*.wav=01\;36:\*.axa=01\;36:\*.oga=01\;36:\*.spx=01\;36:\*.xspf=01\;36:;  export  LS_COLORS
MAIL= /var/spool/mail/root export  MAIL
PATH= /usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin : /usr/bin : /root/bin export  PATH
PWD= /root export  PWD
LANG=en_US.UTF-8;  export  LANG
SSH_ASKPASS= /usr/libexec/openssh/gnome-ssh-askpass export  SSH_ASKPASS
HISTCONTROL=ignoredups;  export  HISTCONTROL
SHLVL=1;  export  SHLVL
HOME= /root export  HOME
LOGNAME=root;  export  LOGNAME
SSH_CONNECTION=192.168.1.100\ 53158\ 192.168.1.103\ 22;  export  SSH_CONNECTION
LESSOPEN=\|\| /usr/bin/lesspipe .sh\ %s;  export  LESSOPEN
G_BROKEN_FILENAMES=1;  export  G_BROKEN_FILENAMES
OLDPWD= /root/ZhanLang_2 export  OLDPWD
cd  /root  || {
      echo  'Execution directory inaccessible'  >&2
      exit  1
}
${SHELL:- /bin/sh } <<  'marcinDELIMITER77c08de9'
/bin/bash  /tmp/a .sh >  /dev/null
 
marcinDELIMITER77c08de9


    2)如何每天0点对数据库备份或etc目录备份。对于每天重复的事情crontab可以解决

1
2
3
4
备份etc目录方法
# zip -r /backup/etc-`date +%F_%T`.zip /etc
# tar Jcf /backup/etc-`date +%F_%T`.tar.xz /etc
***周期性任务计划的%有特殊意义
1
2
3
4
5
6
7
8
9
1、编辑 /etc/crontab
* * * * * user-name  command  to  exec
 
0 0 * * * root  /bin/tar  Jcf  /tmp/XUE . file . tar .xz  /etc
 
2、 crontab  [-u user] 命令
* * * * *  command  to  exec
 
0 0  * * *  /usr/bin/zip  -r  /tmp/xue . file  /etc


3)磁盘满了给root发mail

 echo -e "$(df -hP | grep -v ^Filesystem | awk -v percent=4 '{split($5,ARRAY,"%"); if (ARRAY[1] >= percent){A[$NF]++}}END {for (i in A) {print i}}') \n amost full" | mail root


1、在/etc/crontab中定义 

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost scripts]# which echo
/bin/echo
[root@localhost scripts]# which awk
/bin/awk
[root@localhost scripts]# which grep
/bin/grep
[root@localhost ~]# which df
/bin/df
[root@localhost ~]# which mail
/bin/mail
 
[root@localhost scripts]# vim /etc/crontab
0  0  * * * root /bin/echo -e  "$(/bin/df -hP | /bin/grep -v ^Filesystem | /bin/awk -v percent=40 '{split($5,ARRAY," \% "); if (ARRAY[1] >= percent){A[$NF]++}}END {for (i in A) {print i}}') \n amost full"  | /bin/mail -s  'hello xue'  root


4)如何实现秒级别的执行命令:在每分钟到达时,运行一个命令,需要60秒,就行了

1
2
3
[root@localhost scripts] # crontab -l
55 21 * * *  for  in  1 2 3;  do  /bin/echo  'Howdy!'  sleep  20;  done  
## 每个小时到达21:55分时,就执行后面的命令,后面的命令执行3次每次20秒,所以执行1分钟

5)如何实现每7分钟运行一次任务?


6)每4小时备份一次/etc目录至/backup目录中,保存的文件名称格式为“etc-yyyy-mm-dd-HH.tar.xz”;

1
2
# install -d /backup
0  * */ 4  * * /bin/tar Jcvf /backup/etc-`/bin/date +\%F_\%T`.tar.xz /etc

7)每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”;

1
0  0  * *  2 , 4 , 7  /bin/cp -a / var /log/messages /logs/messages-`date +\%y\%m\%d`

8)每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中;

1
0  */ 2  * * * /bin/egrep  '^S|^M'  /proc/meminfo >> /tmp/meminfo.txt

9)工作日时间内,每小执行一次“ip addr show”命令;

1
0  * * *  1 - 5  /sbin/ip addr show









本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1959471,如需转载请自行联系原作者
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/195533
推荐阅读
  

闽ICP备14008679号