mail,at,batch,sleep小练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mail,at,batch,sleep小练习相关的知识,希望对你有一定的参考价值。

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、确定时间:例如,0:00 下载 
[[email protected] ~]# 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
 
3、生成脚本:
[[email protected] ~]# touchsc 
Enter a script pathname[default: working directory]: /tmp/a.sh
script pathname: /tmp/a.sh

[[email protected] ~]# 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
4、测试脚本能否正常运行
测试脚本语法
[[email protected] ~]# bash -n /tmp/a.sh
测试命令执行
[[email protected] ~]# bash  /tmp/a.sh
5、生成任务
[[email protected] ~]# at -f /tmp/a.sh -v now
Fri Aug 25 15:33:00 2017

job 17 at 2017-08-25 15:33

2)
[[email protected] ~]# echo "/bin/bash /tmp/a.sh" | at now
[[email protected] ~]# at -l
16	2017-08-25 15:28 = root ##正在执行的任务

3) [[email protected] ~]# at now < /tmp/a.sh

4) [[email protected] ~]# batch
[[email protected] ~]# batch
at> /bin/bash /tmp/a.sh
at> <EOT>
job 18 at 2017-08-25 15:39
[[email protected] ~]# at -l
18	2017-08-25 15:39 = root
6、查看任务
[[email protected] ~]# atq
15	2017-08-26 00:00 a root
7、查看任务属性
[[email protected] ~]# 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可以解决

备份etc目录方法
# zip -r /backup/etc-`date +%F_%T`.zip /etc
# tar Jcf /backup/etc-`date +%F_%T`.tar.xz /etc
***周期性任务计划的%有特殊意义
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中定义 

[[email protected] scripts]# which echo
/bin/echo
[[email protected] scripts]# which awk
/bin/awk
[[email protected] scripts]# which grep
/bin/grep
[[email protected] ~]# which df
/bin/df
[[email protected] ~]# which mail
/bin/mail

[[email protected] 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秒,就行了

[[email protected] scripts]# crontab -l
55 21 * * * for i 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”;

# 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”;

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文件中;

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

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

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



本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1959471

以上是关于mail,at,batch,sleep小练习的主要内容,如果未能解决你的问题,请参考以下文章

脚本控制------------------------(at命令mail命令batch命令cron表格anacron表格)

Python小练习更改版(更改一部分代码,与错误)

Linux计划任务at&batch&crontab

关于sleep的理解

Linux自动执行任务

代码片--练习匿名内部类