您的位置:首页 > 运维架构 > Shell

linux下crontab执行shell定时备份sqlserver数据库

2018-02-09 09:53 423 查看
1、查看crontab执行历史记录
tail -n 100 -f /var/log/cron
2、添加crontab定时任务
crontab -e
添加定时任务,每天23点0分执行
0 23 * * * /usr/local/mssqlbackup.sh

3、查看crontab定时任务
crontab -l

注:crontab里面是没环境变量,如果crontab历史记录中有shell有执行记录,但是shell没效果,可能是shell中存在需要环境变量path的命令
export $PATH
所以shell里面要用全路径

4、mssql的备份脚本
#!/bin/bash
#设置mysql备份目录
folder=/var/opt/mssql/backup
cd $folder
day=`date +%Y%m%d`
#rm -rf $day
#mkdir $day
#cd $day
#数据库服务器,一般为localhost
host=localhost
#用户名
user=sa
#密码
password='123456'
#要备份的数据库
db=MTS

#数据要保留的天数
days=7

#由于crontab命令是没环境变量,所以sqlcmd命令,要用全路径,否则定时执行会执行失败
/opt/mssql-tools/bin/sqlcmd -H$host -U$user -P$password -Q "
BACKUP DATABASE TESTDB
TO DISK = '/var/opt/mssql/backup/TESTDB"$day".bak'
WITH FORMAT;
GO"

#删除之前的备份
#cd ..
day=`date -d "$days days ago" +%Y%m%d`
rm -rf "TESTDB"$day".bak"
echo "remove TESTDB"$day".bak"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: