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