全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 乔峰

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

[复制链接]
 楼主| 发表于 2019-1-24 22:13:27 | 显示全部楼层
walsh 发表于 2019-1-24 22:11
老老实实用虚拟主机嘛 买个带jetbackup的 全自动异地备份 啥也不用操心 技术不到家用啥子vps嘛
...

别这样噻
发表于 2019-1-24 22:17:39 来自手机 | 显示全部楼层
Linux可以用秋水逸冰的备份脚本
 楼主| 发表于 2019-1-24 22:18:47 | 显示全部楼层
502 发表于 2019-1-24 22:17
Linux可以用秋水逸冰的备份脚本

win有没推荐的
发表于 2019-1-24 22:20:26 | 显示全部楼层
自己写啊,我是自己写了个Python的脚本,直接备份到良心云的COS里
 楼主| 发表于 2019-1-24 22:22:28 | 显示全部楼层
带头盔滴衰锅 发表于 2019-1-24 22:20
自己写啊,我是自己写了个Python的脚本,直接备份到良心云的COS里

还没这个能力自己写
发表于 2019-1-24 22:23:25 | 显示全部楼层
rclone 备份到各个平台
我备份到google网盘
发表于 2019-1-24 22:26:08 | 显示全部楼层
乔峰 发表于 2019-1-24 22:22
还没这个能力自己写

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

  1. #!/usr/local/bin/python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import sys
  5. import commands
  6. import tarfile

  7. from datetime import date,datetime,timedelta

  8. from qcloud_cos import CosS3Client
  9. from qcloud_cos import CosConfig

  10. # Qcloud COS
  11. SecretID = u'xxx'
  12. SecretKey = u'xxx'
  13. Bucket = u'xxx'
  14. Region = 'ap-chengdu'

  15. # Backup
  16. ToDay = date.today()
  17. OldDay = date.today() - timedelta(5)
  18. BackDir = '/data/backup'
  19. LogFile = BackDir + '/backup.log'
  20. DBUser = 'root'
  21. DBPass = 'xxx'
  22. SQLFile = 'DB_' + str(ToDay.year) + str(ToDay.month) + str(ToDay.day) + '.sql'
  23. DBFile = ('/DB_' + str(ToDay.year) + str(ToDay.month) + str(ToDay.day) + '.tgz').decode('utf-8')
  24. DBOld = 'DB_' + str(OldDay.year) + str(OldDay.month) + str(OldDay.day) + '.tgz'
  25. WebDir = '/data/www'
  26. WebFile = ('/Web_' + str(ToDay.year) + str(ToDay.month) + str(ToDay.day) + '.tgz').decode('utf-8')
  27. WebOld = 'Web_' + str(OldDay.year) + str(OldDay.month) + str(OldDay.day) + '.tgz'

  28. print('Checking backup directory...')
  29. try:
  30.     if not os.path.isdir(BackDir):
  31.         os.mkdir(BackDir)
  32. except IOError, err:
  33.     print err
  34.     sys.exit()

  35. print('Compress your website directory...')
  36. try:
  37.     tar = tarfile.open(BackDir + WebFile, 'w:gz')
  38.     pre_len = len(os.path.dirname(WebDir))
  39.     for root, dir, files in os.walk(WebDir):
  40.         for file in files:
  41.             fullpath = os.path.join(root, file)
  42.             arcname = fullpath[pre_len:].strip(os.path.sep)
  43.             tar.add(fullpath, arcname)
  44.     tar.close()
  45. except IOError, err:
  46.     print err
  47.     sys.exit()

  48. print('Export your databases...')
  49. try:
  50.     cmd = '/usr/local/bin/mysqldump -hxxx.xxx.xxx.xxx -u' + DBUser + ' -p' + DBPass + ' usebsd > ' + BackDir + '/' + SQLFile
  51.     h = commands.getstatusoutput(cmd)
  52.     if h[0] != 0:
  53.         print('Export failed.')
  54.         sys.exit()
  55.     else:
  56.         tar = tarfile.open(BackDir + '/' + DBFile, 'w:gz')
  57.         tar.add(BackDir + '/' + SQLFile, SQLFile)
  58.         tar.close()
  59.         os.remove(BackDir + '/' + SQLFile)
  60. except IOError, error:
  61.     print error
  62.     sys.exit()

  63. print('Prepare upload your backup data to qcloud...')
  64. config = CosConfig(Secret_id=SecretID, Secret_key=SecretKey, Region=Region, Token='')
  65. client = CosS3Client(config)
  66. response = client.upload_file(Bucket=Bucket, LocalFilePath=BackDir + DBFile, Key=DBFile, PartSize=10, MAXThread=10)
  67. print 'Databases file %s upload to bucket %s : %s' % (DBFile, Bucket, response['ETag'])

  68. response = client.upload_file(Bucket=Bucket, LocalFilePath=BackDir + WebFile, Key=WebFile, PartSize=10, MAXThread=10)
  69. print 'Website file %s upload to bucket %s : %s' % (WebFile, Bucket, response['ETag'])

  70. print('Delete old backup data...')
  71. try:
  72.     if os.path.isfile(BackDir + '/' + DBOld):
  73.         os.remove(BackDir + '/' + DBOld)

  74.     if os.path.isfile(BackDir + '/' + WebOld):
  75.         os.remove(BackDir + '/' + WebOld)

  76.     response = client.list_objects(Bucket=Bucket)
  77.    
  78.     for item in response['Contents']:
  79.         if item['Key'] == DBOld or item['Key'] == WebOld:
  80.             client.delete_object(Bucket=Bucket, Key=item['Key'])
  81. except IOError, err:
  82.     print err
  83.     sys.exit()

  84. print 'Backup finished...'
复制代码
 楼主| 发表于 2019-1-24 22:26:47 | 显示全部楼层
hihelllo 发表于 2019-1-24 22:23
rclone 备份到各个平台
我备份到google网盘

推荐个win的
发表于 2019-1-24 22:27:58 | 显示全部楼层

win也可以用呀。。。
 楼主| 发表于 2019-1-24 22:28:57 | 显示全部楼层
hihelllo 发表于 2019-1-24 22:27
win也可以用呀。。。

给个教程呗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-28 03:18 , Processed in 0.073134 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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