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,转载请注明。
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!