Skip to content

Commit 3004003

Browse files
committed
Initial commit
0 parents  commit 3004003

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

DockerSQLBackup.sh

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
devices=( "SQLPROD" "SQLDEV" )
3+
backupPath="/share/DOCKERMEDIA/DBbackup"
4+
5+
# perform backup
6+
for i in "${devices[@]}";do
7+
STR=$(docker ps -aqf name="$i")
8+
echo "Processing $STR"
9+
SAPWD=$(docker exec "$STR" /bin/bash -c "echo \$SA_PASSWORD")
10+
for test in $(docker exec -it $STR /bin/bash -c "/opt/mssql-tools/bin/sqlcmd -U SA -S localhost -P $SAPWD -h -1 -Q 'set nocount on;select name from sys.databases'")
11+
do
12+
if [ ${#test} -ge 2 ]; then # skip blank lines
13+
filename="$(date +%Y%m%d_%H%M%S)_${i}_${test}.bak"
14+
#echo "$filename"
15+
$(docker exec "$STR" /opt/mssql-tools/bin/sqlcmd -U SA -S localhost -P "$SAPWD" -h -1 -Q "set nocount on;BACKUP DATABASE [$test] TO DISK='/var/opt/mssql/data/$filename' WITH INIT")
16+
cd $backupPath
17+
$(docker cp "$STR":/var/opt/mssql/data/$filename $filename)
18+
$(echo "$filename" > lastbackup.txt)
19+
$(docker cp lastbackup.txt "$STR":/var/opt/mssql/data/lastbackup.txt)
20+
fi
21+
done
22+
done
23+
24+
# perform remove of remnant backcups
25+
echo "Cleaning .bak files in the containers"
26+
for i in "${devices[@]}";do
27+
STR=$(docker ps -aqf name="$i")
28+
echo "Processing $STR"
29+
$(docker exec "$STR" /bin/bash -c "rm /var/opt/mssql/data/*.bak")
30+
done
31+
done
32+

0 commit comments

Comments
 (0)