- 定时任务(vi /etc/crontab)
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* 2 * * * root sh /home/script/erpbackup.sh
- 执行mysql数据导出与迁移备份文件到远程机
#!/bin/sh
#! Encoding UTF-8
#---------------------------------------------------------
# scriptname: erpbackup.sh
# version: 1.0 for linux
# method: backup mysqldb
# author: Winchell.Cao
UserName='root'
AdminPwd='root'
DbName=ucsdb
BakDir=/home/backup/
LogFile=/home/backup/mysqlbak.log
DATE=`date +%Y%m%d`
DumpFile=ucsdb$DATE.sql
GZDumpFile=$DumpFile.tgz
Server=10.80.248.25
ServerUserName=root
ServerUserPwd="password\r"
TargetPath=/home/backup
#main---------------------------------------------------------
echo $(date +"%y-%m-%d %H:%M:%S") backup begin >> $LogFile
cd $BakDir
#备份当天文件
mysqldump -u$UserName -p$AdminPwd $DbName > $DumpFile
echo $(date +"%y-%m-%d %H:%M:%S") Dump Done >> $LogFile
#tar压缩文件
tar czvf $GZDumpFile $DumpFile >> $LogFile
#rm -f $DumpFile
echo $(date +"%y-%m-%d %H:%M:%S") $GZDumpFile compress done >> $LogFile
#上传到远程机器
#exec /home/script/autoexpectl.sh
expect <<!
spawn scp $GZDumpFile $ServerUserName@$Server:$TargetPath
expect "*password:"
send $ServerUserPwd
expect eof
!
echo $(date +"%y-%m-%d %H:%M:%S") scp $GZDumpFile compress done >> $LogFile
rm -f $GZDumpFile
#删除当前目录下7天前的文件备份文件
#find $BakDir -name "vpndata*" -mtime +7 -exec rm {} \;
#echo $(date +"%y-%m-%d %H:%M:%S") delete old file done >> $LogFile
#验证结果
ls -al $DumpFile >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") finish >>$LogFile