windows增量备份
@echo off @rem 目的;实现从本地备份到远程smb @rem 源;需要备份的文件 set a=F: @rem smb地址登录账户 set use=bak @rem smb地址登录密码 set pwd=4f@HEmK!ol5FAi4 @rem 连接需要密码的共享文件夹 net use O: \\192.168.8.244\bak "%pwd%" /user:"%use%" @rem 目标;需要备份到的文件夹 set b=O: @rem 开始备份,把a复制到b robocopy /e /eta /it "%a%" "%b%" @rem 复制完成后断开共享 net use O: /del /y exit
linux增量备份
##备份至smb共享
sudo apt-get install smbclient cifs-utils
#挂载smb到本地/smb/
mount -t cifs //192.168.8.244/bak /smb/ -o username=bak,password='4f@HEmK!ol5FAi4'
#增量备份
rsync -avz -exclude={'smb/*','smb'} /backup/ /smb/金蝶/
#卸载smb
umount /smb/
linux脚本备份到SMB
#!/bin/bash
# # 检查crontab工具是否安装
# crontab -l
# # 检查crond服务是否启动
# service crond status
# # 如果未安装服务我们需要进行安装
# yum install vixie-cron
# yum install crontabs
# # 定时任务 每日0点备份
# # 注意别忘记 sh 命令
# crontab -e
# 0 0 * * * sh /root/sqlbackup.sh
# #参考生成工具 https://tool.lu/crontab/
# 第一个* : 分钟(0--59)
# 第二个* : 小时(0--23)
# 第三个* : 日期(0--31)
# 第四个* : 月份(1--12)
# 第五个* : 星期0--7(0或者7表示星期天)
# comand : 要执行的操作
#设置mssql备份目录
folder=/backup/
day=`date +%Y%m%d%H%M%S`
#数据库服务器,一般为localhost
host=localhost
#用户名
user=sa
#密码
password='***'
#删除N天前的文件(40天)
find /var/opt/mssql/data/backup -mtime +40 -name "*.bak" -exec rm -Rf {} \;
#本机
# 循环获取数据库名称
for line in $(/opt/mssql-tools/bin/sqlcmd \
-S $host -U $user -P $password \
-Q "select [name] from master.dbo.SysDatabases where [dbid] > 4")
do
# 判断是否是数据库名称
if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != 'name' && $line != 'rows' ]]; then
echo "数据库 $line 开始备份"
/opt/mssql-tools/bin/sqlcmd \
-S $host -U $user -P $password \
-Q "BACKUP DATABASE [$line] TO DISK = N'$folder$line/$line$day.bak' WITH NOFORMAT, NOINIT, NAME = N'$line Backup $day', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,STATS = 10"
fi
done
##备份至smb共享
#挂载smb
mount -t cifs //192.168.8.244/bak /smb/ -o username=bak,password='4f@HEmK!ol5FAi4'
#增量备份
rsync -avz -exclude={'smb/*','smb'} /backup/ /smb/金蝶/
#卸载smb
umount /smb/
#docker容器
# # 容器名称
# containerId='sql'
# # 循环获取数据库名称
# for line in $(docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
# -S $host -U $user -P $password \
# -Q "select [name] from master.dbo.SysDatabases where [dbid] > 4")
# do
# # 判断是否是数据库名称
# if [[ $line =~ ^[a-zA-Z0-9_]+$ && $line != 'name' && $line != 'rows' ]]; then
# echo "数据库 $line 开始备份"
# docker exec $containerId /opt/mssql-tools/bin/sqlcmd \
# -S $host -U $user -P $password \
# -Q "BACKUP DATABASE [$line] TO DISK = N'$folder$line/$line$day.bak' WITH NOFORMAT, NOINIT, NAME = N'$line Backup $day', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,STATS = 10"
# fi
# done
本文作者为55gY,转载请注明。
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!