您的位置:首页 > 其它

备份指定文件到用户主目录,使用tar命令压缩并发送邮件

2009-09-17 10:25 881 查看
#!/bin/bash
# 译者:龙力勤
# 最新更新:2009-08-16
# 出自懒人运维:http://www.lazysa.com
# Eamil:longkaty@sina.com
# 用途:mysql数据库备份脚本。
# 表述:备份指定文件到用户主目录,使用tar命令压缩并发送邮件
# 更多关于此脚本的讨论,请参考:
# http://www.lazysa.com/2009/08/768.html # 用法: ./mybackup

FILE=~/.mybackup
NOW=`date +"%d-%m-%Y"`
OUT="`echo $USER.$HOSTNAME`.$NOW.tar.gz"
TAR=`which tar`

# mail setup
MTO="nixbackup@somedom.com"
MSUB="Backup (`echo $USER @ $HOSTNAME`) as on `date`"
MES=~/tmp/mybackup.txt
MATT=~/tmp/$OUT

# make sure we put backup in our own tmp and not in /tmp
[ ! -d ~/tmp ] && mkdir ~/tmp || :
if [ -f $FILE ]; then
IN="`cat $FILE | grep -E -v "^#"`"
else
echo "File $FILE does not exists"
exit 3
fi

if [ "$IN" == "" ]; then
echo "$FILE is empty, please add list of files/directories to backup"
echo "Use mybackupadd script"
exit 2
fi

$TAR -zcf ~/tmp/$OUT $IN >/dev/null
# create message for mail
echo "Backup successfully done. Please see attached file." > $MES
echo "" >> $MES
echo "Backup file: $OUT" >> $MES
echo "" >> $MES

# bug fix, we can't send email with attachment if mutt is not installed
which mutt > /dev/null
if [ $? -eq 0 ]; then
# now mail backup file with this attachment
mutt -s "$MSUB" -a "$MATT" $MTO < $MES
else
echo "Command mutt not found, cannot send an email with attachment"
fi

# clean up
/bin/rm -f $MATT
/bin/rm -f $MES
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐