Linux服务器超级实用的脚本
1.使用INOTIFY+RSYNC自动实时同步数据
代码执行: bash inotify_rsyncs.sh
:cat inotify_rsyncs.sh 脚本内容如下:
#!bing/bash
# Author: reyn
#检测/data路径下的文件变化,排除Temp目录
INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /data/ --exclude=Temp"
# 同步数据
RSYNC_CMD1="rsync -avz /data/ --exclude-from=/etc/rc.d/init.d/exclude.txt harry@10.14.2.102:/data/ --delete"
RSYNC_CMD2="rsync -avz /data/ --exclude-from=/etc/rc.d/init.d/exclude.txt harry@10.14.2.103:/data/ --delete"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMD1&&$RSYNC_CMD2 >> rsync.logfi
done
2. MYSQL自动备份以及删除备份脚本
代码执行:bash db_backup.sh
:cat db_backup.sh脚本内容如下:
#!/bin/bash
# Author: reyn
# Description: Database backup script
dbback(){
# 定义变量
db_user="ma_prd"
db_passwd="<password>"
db_path="/data/bakmysql"
db_file="backuprecord"
db_date=`date +%Y%m%d_%H:%M:%S`
# 判断路径是否存在
[ -d $db_path ] || exit 2
# 使用mysqldump备份数据,并用gzip进行压缩
mysqldump -u$db_user -p$db_passwd --single-transaction ma | gzip > $db_path/${db_date}_ma.sql.gz
REVAL=$?
if [ $REVAL -eq 0 ]thenecho "$db_date ma db is backups successful" >>$db_path/$db_fileelseecho "$db_date ma db is backups failed&