简介
Linux定时任务是一种可执行的命令或者脚本,在特定的时间或者时间间隔下自动执行。通过在系统中预设一些需要执行的任务,可以让Linux定时任务自动执行并完成这些任务。定时任务可以用于自动备份、系统清理、监控、自动化维护等任务。
一、apache服务器监控
[root@localhost ~]# vim apacheSentry.sh#!/bin/bash
# author: tt
# description: sendtry apache http server# 用于判断httpd是否启动
port=$(nmap -sT 192.168.114.135 | grep tcp | grep http | awk '{print $2'})if [ "$port" == "open" ]thenecho "$(date) httpd is running" >> /tmp/httpd-sendtry-acc.logelse/etc/rc.d/init.d/httpd restart &> /dev/nullecho "$(date) httpd reboot!!" >> /tmp/httpd-sendtry-err.log
fi
”>"和“2>" 这两个的结合体就是 ”&>"
二、数据库定时备份
[root@localhost sh]# vim dbbak.sh#!/bin/bash
# author: aq
# description: 用于定时备份数据库BAK_DIR=/data/db-backup/$(date +%Y%m%d)
DB_NAME="webserver"
DB_USER="root"
DB_PWD="123456"
MYSQL_DUMP_CMD=/usr/bin/mysqldumpif [ $UID -ne 0 ];thenecho "请使用root用户执行";exit;
fiif [ ! -d $BAK_DIR ];thenmkdir -p $BAK_DIRecho -e "$BAK_DIR 创建成功"
elseecho -e "$BAK_DIR 目录已存在"
fi$MYSQL_DUMP_CMD -u$DB_USER -p$DB_PWD $DB_NAME > $BAK_DIR/$DB_NAME.sqlif [ $? -eq 0 ];thenecho -e "数据库备份成功"
elseecho -e "数据库备份失败,请检查备份脚本"
fiexit
三、使用shell脚本发送邮件
该例使用sendmail发送邮件,如果没有安装,可以使用如下命令先安装
yum install sendmail
脚本如下:
#!/bin/bash
# author aq
email_header="Subject: 系统信息\nTo: lisensir@163.com"
email="$email_header\ntomcat服务器正常运行,日期:$(date '+%Y-%m-%d %H:%M:%S')"
echo -e "$email" | sendmail -t
注意: -e参数不能丢,否则不会讲\n解析为换行