找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: 乔峰

有没大佬能出个傻瓜式适合小白的vps备份小系统呢!!!

[复制链接]

84

主题

270

回帖

800

积分

高级会员

积分
800
 楼主| 发表于 2019-1-24 22:05:08 | 显示全部楼层

502 发表于 2019-1-24 22:17

Linux可以用秋水逸冰的备份脚本

win有没推荐的
回复

使用道具 举报

68

主题

991

回帖

2234

积分

金牌会员

积分
2234
发表于 2019-1-24 22:07:07 | 显示全部楼层
自己写啊,我是自己写了个Python的脚本,直接备份到良心云的COS里
回复

使用道具 举报

84

主题

270

回帖

800

积分

高级会员

积分
800
 楼主| 发表于 2019-1-24 22:05:00 | 显示全部楼层

带头盔滴衰锅 发表于 2019-1-24 22:20

自己写啊,我是自己写了个Python的脚本,直接备份到良心云的COS里

还没这个能力自己写

回复

使用道具 举报

35

主题

325

回帖

775

积分

高级会员

积分
775
发表于 2019-1-24 22:11:52 | 显示全部楼层
rclone 备份到各个平台
我备份到google网盘
回复

使用道具 举报

68

主题

991

回帖

2234

积分

金牌会员

积分
2234
发表于 2019-1-24 22:12:39 | 显示全部楼层

乔峰 发表于 2019-1-24 22:22

还没这个能力自己写

额。。。那没办法,我的是对应FreeBSD系统的,Linux下没测试,你可以看看

[ol]
  • #!/usr/local/bin/python
  • # -*- coding: utf-8 -*-
  • import os
  • import sys
  • import commands
  • import tarfile
  • from datetime import date,datetime,timedelta
  • from qcloud_cos import CosS3Client
  • from qcloud_cos import CosConfig
  • # Qcloud COS
  • SecretID = u'xxx'
  • SecretKey = u'xxx'
  • Bucket = u'xxx'
  • Region = 'ap-chengdu'
  • # Backup
  • ToDay = date.today()
  • OldDay = date.today() - timedelta(5)
  • BackDir = '/data/backup'
  • LogFile = BackDir + '/backup.log'
  • DBUser = 'root'
  • DBPass = 'xxx'
  • SQLFile = 'DB_' + str(ToDay.year) + str(ToDay.month) + str(ToDay.day) + '.sql'
  • DBFile = ('/DB_' + str(ToDay.year) + str(ToDay.month) + str(ToDay.day) + '.tgz').decode('utf-8')
  • DBOld = 'DB_' + str(OldDay.year) + str(OldDay.month) + str(OldDay.day) + '.tgz'
  • WebDir = '/data/www'
  • WebFile = ('/Web_' + str(ToDay.year) + str(ToDay.month) + str(ToDay.day) + '.tgz').decode('utf-8')
  • WebOld = 'Web_' + str(OldDay.year) + str(OldDay.month) + str(OldDay.day) + '.tgz'
  • print('Checking backup directory...')
  • try:
  •     if not os.path.isdir(BackDir):
  •         os.mkdir(BackDir)
  • except IOError, err:
  •     print err
  •     sys.exit()
  • print('Compress your website directory...')
  • try:
  •     tar = tarfile.open(BackDir + WebFile, 'w:gz')
  •     pre_len = len(os.path.dirname(WebDir))
  •     for root, dir, files in os.walk(WebDir):
  •         for file in files:
  •             fullpath = os.path.join(root, file)
  •             arcname = fullpath[pre_len:].strip(os.path.sep)
  •             tar.add(fullpath, arcname)
  •     tar.close()
  • except IOError, err:
  •     print err
  •     sys.exit()
  • print('Export your databases...')
  • try:
  •     cmd = '/usr/local/bin/mysqldump -hxxx.xxx.xxx.xxx -u' + DBUser + ' -p' + DBPass + ' usebsd > ' + BackDir + '/' + SQLFile
  •     h = commands.getstatusoutput(cmd)
  •     if h[0] != 0:
  •         print('Export failed.')
  •         sys.exit()
  •     else:
  •         tar = tarfile.open(BackDir + '/' + DBFile, 'w:gz')
  •         tar.add(BackDir + '/' + SQLFile, SQLFile)
  •         tar.close()
  •         os.remove(BackDir + '/' + SQLFile)
  • except IOError, error:
  •     print error
  •     sys.exit()
  • print('Prepare upload your backup data to qcloud...')
  • config = CosConfig(Secret_id=SecretID, Secret_key=SecretKey, Region=Region, Token='')
  • client = CosS3Client(config)
  • response = client.upload_file(Bucket=Bucket, LocalFilePath=BackDir + DBFile, Key=DBFile, PartSize=10, MAXThread=10)
  • print 'Databases file %s upload to bucket %s : %s' % (DBFile, Bucket, response['ETag'])
  • response = client.upload_file(Bucket=Bucket, LocalFilePath=BackDir + WebFile, Key=WebFile, PartSize=10, MAXThread=10)
  • print 'Website file %s upload to bucket %s : %s' % (WebFile, Bucket, response['ETag'])
  • print('Delete old backup data...')
  • try:
  •     if os.path.isfile(BackDir + '/' + DBOld):
  •         os.remove(BackDir + '/' + DBOld)
  •     if os.path.isfile(BackDir + '/' + WebOld):
  •         os.remove(BackDir + '/' + WebOld)
  •     response = client.list_objects(Bucket=Bucket)
  •    
  •     for item in response['Contents']:
  •         if item['Key'] == DBOld or item['Key'] == WebOld:
  •             client.delete_object(Bucket=Bucket, Key=item['Key'])
  • except IOError, err:
  •     print err
  •     sys.exit()
  • print 'Backup finished...'
  • [/ol]复制代码
  • 回复

    使用道具 举报

    84

    主题

    270

    回帖

    800

    积分

    高级会员

    积分
    800
     楼主| 发表于 2019-1-24 22:11:00 | 显示全部楼层

    hihelllo 发表于 2019-1-24 22:23

    rclone 备份到各个平台
    我备份到google网盘

    推荐个win的
    回复

    使用道具 举报

    35

    主题

    325

    回帖

    775

    积分

    高级会员

    积分
    775
    发表于 2019-1-24 22:17:39 | 显示全部楼层

    乔峰 发表于 2019-1-24 22:26

    推荐个win的

    win也可以用呀。。。
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2019-1-24 22:18:47 | 显示全部楼层

    hihelllo 发表于 2019-1-24 22:27

    win也可以用呀。。。

    给个教程呗
    乔峰 发表于 2019-1-24 22:28

    给个教程呗

    https://rclone.org

    看 docs 或者 搜索 中文帮助内容 很多的
    回复

    使用道具 举报

    48

    主题

    2294

    回帖

    4802

    积分

    论坛元老

    积分
    4802
    发表于 2019-1-24 22:17:00 | 显示全部楼层
    oneinstack好像自带备份满足你的要求了
    回复

    使用道具 举报

    84

    主题

    270

    回帖

    800

    积分

    高级会员

    积分
    800
     楼主| 发表于 2019-1-24 22:20:26 | 显示全部楼层

    hihelllo 发表于 2019-1-24 22:30

    https://rclone.org

    看 docs 或者 搜索 中文帮助内容 很多的

    感觉不是很好用
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-4-28 10:03 , Processed in 0.019220 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表