linux下crontab執行shell定時備份sqlserver數據庫

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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章