编写脚本
linux中经常会遇到要求备份数据库,这里记录一下备份的脚本怎么写
BackDir:我们的备份的文件放的位置
LogFile:备份成功或者失败的日志
DataBase:数据库名称
DataBaseUser:数据库用户名
DataBasePWD:数据库密码
脚本如下
export LANG=en_US.UTF-8
#注意:下面这几个变量需修改为你自己的
BackDir=/home/backup
LogFile=/home/backup/bak.log
DataBase=user
DataBaseUser=root
DataBasePWD=pwd
if [ ! -d "$BackDir" ];then
mkdir $BackDir
fi
if [ ! -f "$LogFile" ]; then
touch "$LogFile"
fi
Date=`date +%Y%m%d_%H%M%S`
Begin=`date +%Y%m%d_%H:%M:%S`
#到备份目录下
cd $BackDir
#设置导出脚本名称
DumpFile=dataBaseNme_$Date.sql
#设置压缩包名称
DumpFileZip=dataBase_$Date.sql.tgz
#导出数据库数据
mysqldump -u$DataBaseUser -p$DataBasePWD $DataBase > $DumpFile
#压缩sql脚本
tar -czvf $DumpFileZip $DumpFile
#删除sql脚本
rm $DumpFile
#下面这一段是保留最近7天的数据
count=$(ls -l *.tgz |wc -l)
if [ $count -ge 8 ]
then
file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
rm -f $file
fi
Last=`date +"%Y%m%d_%H:%M:%S"`
echo start:$Begin end:$Last $DumpFileZip succ >> $LogFile
加入到定时任务
- crontab -l 查看当前有没有定时任务
- crontab -e 编辑定时任务
例子:
0 0 * * * /root/test.sh
#分 时 日 月 周 |《==============命令行=======================》|
注意:有可能会遇到这个错误:
1.mysqldump: command not found
这是因为在安装mysql的时候,并没有将mysql的bin配置到系统的环境变量中
- 解决办法:
vim /etc/profile
设置环境变量
写一个MYSQL_HOME,值为“mysql的安装路径”
在PATH后面加上$MYSQL_HOME/bin
export后面加上MYSQL_HOME
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME
将mysql加入到系统的环境变量后这个问题就搞定了,以后在任何目录也都可以连接mysql
- windows下上传shell脚本至linux,其格式将为dos。dos模式的shell脚本将不能再linux下正确运行,需要修改文件
- linux服务器上,用vi编辑器打开shell脚本,随后进入命令行模式,输入"set ff",即可查看文件模式,
- 在命令行模式下,输入"set ff=unix",即可将dos模式修改为unix模式。
再次查看: