windows linux 远程备份方案,一个简单的备份方案 (Linux Server to Windows Server)

工作需要:备份 Linux server 的 subversion repo 到 Windows server.

1) 在 Windows server 创建共享文件夹 Linux_Server_SVN_Backup_folder(注意设置必要的共享权限,不要设成 everyone)

2) 在 Linux server 编写如下 Python 脚本 svn_backup.py,实现压缩和拷贝,

#!/usr/bin/env python3#-*- coding: utf-8 -*-

importosimporttime

current_time= time.strftime(‘%Y-%m-%d_%H.%M.%S‘) #timestamp

src_path_list = [‘/svn‘] #folder to backup

dst_path = ‘/home/peterpan/SVN_backup_repo‘ #folder to store temp repo 7z package

dst_file = dst_path + os.sep + ‘SVN_backup_‘ + current_time + ‘.7z‘ #7z package name

dst_log = dst_path + os.sep + ‘svn_backup.log‘ #log file to record operation

mount_path = ‘/mnt/windowsShare‘ #folder to use mount Windows Share folder

command_package_7z= ‘7za a %s %s‘ % (dst_file, ‘ ‘.join(src_path_list)) #Note, 7za is auto recursive, no need other options such as ‘-r‘

command_mount_win_share_folder = ‘mount -t cifs -o user=peterpan,password=123456 //10.217.32.78/Linux_Server_SVN_Backup_Folder /mnt/windowsShare/‘command_cp_to_mount_folder= ‘cp %s /mnt/windowsShare‘ %dst_file

command_umount= ‘umount /mnt/windowsShare‘with open(dst_log,‘a‘) as fh_log:

fh_log.write(‘============= %s =============\n‘ %current_time)if os.system(command_package_7z) ==0:

fh_log.write(‘%s\n‘ % ‘package to 7z succeed‘)if os.system(command_mount_win_share_folder) ==0:

fh_log.write(‘%s\n‘ % ‘mount win share folder succeed‘)if os.system(command_cp_to_mount_folder) ==0:

fh_log.write(‘%s\n‘ % ‘cp package to mount folder succeed‘)if os.system(command_umount) ==0:

fh_log.write(‘%s\n\n‘ % ‘umount succeed‘)else:

fh_log.write(‘%s\n‘ % ‘umount failed‘)else:

fh_log.write(‘%s\n‘ % ‘cp package to mount folder failed‘)else:

fh_log.write(‘%s\n‘ % ‘mount win share folder failed‘)else:

fh_log.write(‘%s\n\n‘ % ‘package to 7z failed‘)

并设置脚本执行权限,

$ chmod a+x svn_backup.py

3) 为上述脚本安排 crontab 排程

因为上述脚本有些操作需要 root 权限,例如 mount,umount,所以为 root 用户安排 crontab 定时任务,

$ su -# crontab-e

默认打开 vi 编辑器,编辑内容如下,实现每周五的23点59分运行备份脚本,(注意开头的数字依次代表: 分,时,日,月,周)

59 23 * * 5 /home/peterpan/SVN_backup_repo/svn_backup.py

保存退出,查看为 root 用户安排的 crontab 定时任务,

# crontab -l

如果要修改,则依然使用,

# crontab -e

如果要删除全部定时任务,则使用,

# crontab -r

完。

原文:https://www.cnblogs.com/gaowengang/p/12760001.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值