V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
JiaFeiX
V2EX  ›  云计算

没有删除过服务器全部数据的经历,不足以谈人生。。。。

  •  
  •   JiaFeiX · 2015-11-27 11:30:40 +08:00 · 9770 次点击
    这是一个创建于 3073 天前的主题,其中的信息可能已经有所发展或是发生改变。



    82 条回复    2015-11-28 23:25:50 +08:00
    JiaFeiX
        1
    JiaFeiX  
    OP
       2015-11-27 11:31:26 +08:00
    现在在新的主机上从头来过,人生好艰难。。。。
    Zzzzzzzzz
        2
    Zzzzzzzzz  
       2015-11-27 11:34:28 +08:00   ❤️ 9
    ?1
    chinassl
        3
    chinassl  
       2015-11-27 11:36:20 +08:00
    异地备份,异地备份,异地备份,重要事情说 3 遍
    Daemon
        4
    Daemon  
       2015-11-27 11:36:31 +08:00
    之前没用一个快照,创建镜像吗,有个镜像也好。。
    moro
        5
    moro  
       2015-11-27 11:37:41 +08:00
    及時備份,及時備份,及時備份
    重要的事情說三遍!
    800126
        6
    800126  
       2015-11-27 11:38:13 +08:00
    我是来寻开心的。
    ckzx
        7
    ckzx  
       2015-11-27 11:40:46 +08:00
    被你们搞的整个人都不好了。赶紧上服务器手动再备份个先。
    wy315700
        8
    wy315700  
       2015-11-27 11:42:10 +08:00
    数据库层都没有备份吗,
    realpg
        9
    realpg  
       2015-11-27 11:47:58 +08:00
    你们的备份呢?
    另外,延时删除?多占用的时间付费了么……
    zsen
        10
    zsen  
       2015-11-27 11:54:04 +08:00   ❤️ 8
    ```
    #!/bin/bash

    # 配制开始,根据需要修改以下值
    # 备份文件保存目录
    Backup_Home="/home/Backup/"

    # 需要备份的站点目录,多目录用空格隔开
    Backup_WWW_Dir="/home/wwwroot/www_Dir"

    # 需要备份的数据库名 All 或 输入类似 db1 db2 的列表清单
    Backup_DB_Name="dbname"

    # 数据库配置
    DB_HOST=localhost
    DB_User=user
    DB_Pass=pass

    # 备份 MYSQL 时生成 CREATE 数据库语句
    CREATE_DATABASE="yes"

    # 发生到邮件的地址
    Mail_TO="your@mail"

    # 保留数据库备份文件的天数
    Backup_DB_Date=5
    # 保留网站目录备份文件的天数
    Backup_Code_Date=5

    # 邮件发送方式
    Mail_Type="mail"

    # 配制结束,以下内容不需要修改

    # 当前备份日期和时间
    DATE=`date +%Y%m%d`
    DEL_SQL_DATE=`date -d -${Backup_DB_Date}day +%Y%m%d`
    DEL_CODE_DATE=`date -d -${Backup_Code_Date}day +%Y%m%d`
    OPT="--quote-names --opt"

    # 检查备份路径是否存在,不存在则建立
    if [ ! -e "${Backup_Home}" ]; then
    mkdir -p "${Backup_Home}"
    fi

    # 删除备份目录下前设定天数的备份数据
    rm -f ${Backup_Home}DB_${DEL_SQL_DATE}.sql.gz
    rm -f ${Backup_Home}Code_${DEL_CODE_DATE}.tar.gz

    # 检查是否需要生成 CREATE 数据库语句
    if [ "${CREATE_DATABASE}" = "yes" ]; then
    OPT="${OPT} --databases"
    else
    OPT="${OPT} --no-create-db"
    fi

    # 检查是否是备份所有数据库
    if [ "${Backup_DB_Name}" = "all" ]; then
    Backup_DB_Name="--all-databases"
    fi

    BACKUP_DB_FILE=DB_${DATE}.sql.gz
    BACKUP_CODE_FILE=Code_${DATE}.tar.gz

    cd ${Backup_Home}

    # 备份数据库
    `which mysqldump` --user=${DB_User} --password=${DB_Pass} --host=${DB_HOST} ${OPT} ${Backup_DB_Name} | gzip > "${BACKUP_DB_FILE}"
    #`which mysqldump` --host=${DB_HOST} ${OPT} ${Backup_DB_Name} | gzip > "${BACKUP_DB_FILE}"
    # 备份网站目录。此处用了绝对路径,解压时需注意
    tar zcPf ${BACKUP_CODE_FILE} ${Backup_WWW_Dir}

    # 将备份文件保存至指定邮箱
    if [ "${Mail_Type}" = "mail" ]; then
    echo "MySQL DataBase and website Code Backup." | mail -s "DB&Code Backup ${DATE}" -a ${BACKUP_DB_FILE} -a ${BACKUP_CODE_FILE} -r [email protected] ${Mail_TO}
    fi

    if [ "${Mail_Type}" = "mutt" ]; then
    echo "MySQL DataBase and website Code Backup." | mutt -s "DB&Code Backup ${DATE}" ${Mail_TO} -a ${BACKUP_DB_FILE} -a ${BACKUP_CODE_FILE}
    fi
    ```
    burgleaf
        11
    burgleaf  
       2015-11-27 11:56:42 +08:00
    @zsen 好人。。
    loading
        12
    loading  
       2015-11-27 11:58:14 +08:00 via Android   ❤️ 1
    没事,我们都是开过光贴了符的服务器,这种事不会发生的。
    zsen
        13
    zsen  
       2015-11-27 11:58:49 +08:00
    @burgleaf 谢谢ᕦ( ᴼ ڡ ᴼ )ᕤ

    然后 crontab -e 加定时任务
    当然,还有一些基本配置要设置。。。

    另外,``` 这个不是代码加亮的么?
    sghcel
        14
    sghcel  
       2015-11-27 12:02:29 +08:00
    @zsen 好人啊,收了放VPS上
    kozora
        15
    kozora  
       2015-11-27 12:04:51 +08:00
    前天手欠 azure 挂载硬盘的时候,把挂载到 Home 目录了,而我网站目录就在 home ,天了噜,然后查了些资料,因为 azure 删机器是默认不删除硬盘的,然后把原来的机器删掉了,然后开个新机器,把旧机器上的硬盘作为数据盘挂载到新的机器上,数据又回来了
    irockytan
        16
    irockytan  
       2015-11-27 12:05:07 +08:00
    @Zzzzzzzzz 怎么这么眼熟?这是哪个游戏来着?
    xdeng
        17
    xdeng  
       2015-11-27 12:10:06 +08:00
    @Daemon
    @realpg 客服都说了 换系统 备份会自动删除的
    Phariel
        18
    Phariel  
       2015-11-27 12:16:20 +08:00
    @irockytan 仙剑
    10iii
        19
    10iii  
       2015-11-27 12:19:38 +08:00   ❤️ 1
    自己的玩具网站:
    VPS 忘续费,遭删,重新弄整个网站,两天周末加一周晚上。
    VPS 又忘续费,遭删,重新弄整个网站,两天周末加一个晚上。
    VPS 再次忘续费,遭删。没动力了。
    另一个玩具网站:
    某日登录 VPS 管理页,误以为这个 VPS 是闲置空的,那更新一下 ubuntu 版本到比较新的 LTS 吧。然后,重新弄整个网站,一个周末。
    chairuosen
        20
    chairuosen  
       2015-11-27 12:26:02 +08:00
    所以我买了 Linode 的 Backup 服务
    HanSonJ
        21
    HanSonJ  
       2015-11-27 12:28:40 +08:00
    没试过删除,试过 chmod -fR 000 /
    msg7086
        22
    msg7086  
       2015-11-27 12:43:35 +08:00
    重要的网站一定不要做 MySQL 的 cronjob 定时备份。
    vh2h
        23
    vh2h  
       2015-11-27 13:03:45 +08:00
    @10iii 一个坑跳进去了三次
    lyragosa
        24
    lyragosa  
       2015-11-27 13:06:30 +08:00
    virtualmin 用户表示用自带的备份工具
    LINAICAI
        25
    LINAICAI  
       2015-11-27 13:19:25 +08:00
    没有 rm -rf 过的人生不完整
    cnsoft
        26
    cnsoft  
       2015-11-27 13:26:52 +08:00
    所以说 大家是时候了解一下 数据方舟了. 来个视频
    wesley
        27
    wesley  
       2015-11-27 13:28:54 +08:00
    crontab + dropbox
    再也不怕 VPS 忘续费了
    moe3000
        28
    moe3000  
       2015-11-27 13:29:58 +08:00
    看来有必要找个测试服务器让我的人生完整一下

    @zsen 学习了
    beneo
        29
    beneo  
       2015-11-27 13:37:10 +08:00
    线上服务器必须高可用,怎么也是两台机器
    xuhaoyangx
        30
    xuhaoyangx  
       2015-11-27 13:41:48 +08:00
    @zsen 感谢
    davidyin
        31
    davidyin  
       2015-11-27 13:47:50 +08:00
    平时都是用类似 10 楼的脚本,每晚定时备份,上传到家里的备份服务器上。
    一天一次。
    gamexg
        32
    gamexg  
       2015-11-27 14:13:56 +08:00
    刚刚转移一个网站,测试通过后删除临时文件时将刚刚转移过来的网站也删掉了。还好源没有动,重做了一次。
    KenGe
        33
    KenGe  
       2015-11-27 14:16:26 +08:00
    我是用的多备份~ 省时省力
    gamexg
        34
    gamexg  
       2015-11-27 14:16:37 +08:00
    @msg7086 ??有什么坑?
    gzlock
        35
    gzlock  
       2015-11-27 14:18:29 +08:00 via Android
    通常都是上 FTP 删文件
    xupefei
        36
    xupefei  
       2015-11-27 14:35:26 +08:00
    https://github.com/xupefei/VPS-Daily-Backup-Script

    放一个以前写的自动备份脚本,使用前请务必修改脚本中的路径。
    这脚本用在某网站上一年多了,从来没出过问题,很靠谱。
    Kokororin
        37
    Kokororin  
       2015-11-27 15:26:09 +08:00
    每天自动备份到 Dropbox
    xjoker
        38
    xjoker  
       2015-11-27 15:38:53 +08:00
    家里的服务器挂着 goodsync 文件有变化就同步
    simapple
        39
    simapple  
       2015-11-27 15:40:38 +08:00
    淘宝的购买记录现在也不正常了
    cai314494687
        40
    cai314494687  
       2015-11-27 15:42:41 +08:00
    哈哈 我删过
    ryd994
        41
    ryd994  
       2015-11-27 15:52:22 +08:00 via Android
    幸好我上次只是删了全部 Nginx 配置而已
    dump 内存,从 Nginx 内存里吧配置文件抠出来
    nooper
        42
    nooper  
       2015-11-27 16:00:15 +08:00 via iPad
    我做的都是自动化的运维。任何一台服务器给我十分钟的时间我便能够自动构建应用
    mahone3297
        43
    mahone3297  
       2015-11-27 16:08:17 +08:00
    @Zzzzzzzzz 这个图片好。。。好应景。。。。好经典。。。
    sholmesian
        44
    sholmesian  
       2015-11-27 16:54:01 +08:00
    多备份 +1
    yytsjq
        45
    yytsjq  
       2015-11-27 17:11:10 +08:00
    我现在是服务器每天自动备份,然后上传到 Dropbox 、 Google Cloud Storage 还有 KeyCDN Push 空间,只保留最近 7 天的备份文件。这样应该能避免悲剧了吧。。
    msg7086
        46
    msg7086  
       2015-11-27 18:07:27 +08:00 via Android
    @gamexg 没有坑。只不过 mysql 复制已经很成熟了,不应该去冒险。
    neoblackcap
        47
    neoblackcap  
       2015-11-27 18:19:20 +08:00
    其实我想知道,为什么有云的,还要贸然同一台机器上面重装。重新开个实例不更好么?反正也花不了多少钱,新实例能正常运行了再删除旧实例
    qj12kkp
        48
    qj12kkp  
       2015-11-27 19:23:10 +08:00
    我只用过 drop database `xx` - > -
    Xrong
        49
    Xrong  
       2015-11-27 20:16:51 +08:00
    数据库每天自动备份,楼主你这太不小心了。。。
    shengyu
        50
    shengyu  
       2015-11-27 20:50:00 +08:00 via Android
    脚本自动备份百度云
    zjqzxc
        51
    zjqzxc  
       2015-11-27 20:56:03 +08:00
    @xupefei 好像看到了。。数据库的 root 密码。。。希望这不是真的。。
    hei1000
        52
    hei1000  
       2015-11-27 21:02:23 +08:00 via Android
    没有以 root 权限执行过 rm -rf / 不足以说自己用过 Linux
    xupefei
        53
    xupefei  
       2015-11-27 21:06:59 +08:00
    @zjqzxc 的确不是真的 lol
    Hyperion
        54
    Hyperion  
       2015-11-27 21:09:30 +08:00   ❤️ 1
    哼,这算什么!

    早期某家提供商客服不提供任何维护,然而我因为一次不小心配置错了 vps 的登录私钥,导致无法登陆…

    找客服未果,我自己亲手忍痛格掉…
    tntsec
        55
    tntsec  
       2015-11-27 21:11:20 +08:00
    本地 百度网盘 七牛三层备份
    http://www.tntsec.com/archives/256.html
    pynix
        56
    pynix  
       2015-11-27 21:18:27 +08:00
    快照。。。
    jsthon
        57
    jsthon  
       2015-11-27 22:30:55 +08:00
    吓得我赶紧去创建了一个自定义镜像
    raptor
        58
    raptor  
       2015-11-27 22:33:41 +08:00
    运维水平太不靠谱了…

    我自己的 BLOG 都有多重备份,在 VPS 上做数据库备份,然后 rsync 到家里的备份服务器上,然后这个备份服务器用 ZFS 做快照,保留十几份。定期还有离线备份。
    crowds
        59
    crowds  
       2015-11-27 22:50:28 +08:00
    自己的网站而已
    又不是停了之后一坨人拿你问罪
    有什么大不了的
    Daddy
        60
    Daddy  
       2015-11-28 00:59:04 +08:00
    @Hyperion SolusVM 管理后台,可以让你用特定账户密码登陆的
    qw7692336
        61
    qw7692336  
       2015-11-28 01:11:41 +08:00
    刚刚 rm -rf 了自己电脑硬盘的根目录
    syy
        62
    syy  
       2015-11-28 01:29:10 +08:00
    每天自动备份到 Dropbox
    chairuosen
        63
    chairuosen  
       2015-11-28 01:31:55 +08:00
    @qw7692336 装点 Adobe 全家桶
    qw7692336
        64
    qw7692336  
       2015-11-28 01:34:47 +08:00
    @chairuosen
    装了会怎样。。
    求恢复软件
    AstroProfundis
        65
    AstroProfundis  
       2015-11-28 01:41:41 +08:00
    @qw7692336 装了会让你有更多时间在删到用户文件之前按 Ctrl+C...
    qw7692336
        66
    qw7692336  
       2015-11-28 01:45:47 +08:00
    @AstroProfundis
    不治本
    AstroProfundis
        67
    AstroProfundis  
       2015-11-28 01:50:05 +08:00
    @qw7692336 这只是个梗而已,别认真...
    qw7692336
        68
    qw7692336  
       2015-11-28 01:53:57 +08:00
    @AstroProfundis 我听说过放大文件的,没听说过 adobe 全家的
    twl007
        69
    twl007  
       2015-11-28 07:06:03 +08:00
    曾经干过…… 格了硬盘忘了同步磁盘信息了…… 然后重启之后…… = = ||||||
    ahillgian
        70
    ahillgian  
       2015-11-28 09:00:30 +08:00
    可怜.
    Showfom
        71
    Showfom  
       2015-11-28 10:37:53 +08:00 via iPhone
    楼上的有些备份脚本居然发到邮箱的.....你们的数据库是有多小...
    realpg
        72
    realpg  
       2015-11-28 10:47:10 +08:00
    @Showfom
    干货数据库本身确实可能很小。
    之前做的一个七百多万用户的项目, MYSQL 文件压缩后也不过 20MB
    Showfom
        73
    Showfom  
       2015-11-28 10:52:23 +08:00 via iPhone
    @realpg 太小了 我这随便压缩后都上百 M 了
    realpg
        74
    realpg  
       2015-11-28 10:55:55 +08:00
    @Showfom
    跟业务有关啊
    我现在还维护一个项目,整个项目的 DB 里面只有 username 一个字符类变量,其他全是各种长短 int ,包含 password 都是 int 存储,就是为了查询速度以及容量小方便自动随时迁移
    zsen
        75
    zsen  
       2015-11-28 12:07:49 +08:00
    那个脚本里面还是有一些坑需要填的。

    比如我用的是 postfix ,默认只能发 10M 的附件,需要手动更改配置文件来发送大附件。目前我自己跑的是 20M 是没问题的,因为我的备份文件压缩后木有超过 20M ,所以最大能发多大的附件,没实际测试过。

    另外,在 mac 下, mail 是没有-s 添加附件这一功能的。至于 linux 下面,是不是所有版本都支持,我也不清楚。建议可以使用 mutt 来。

    至于说数据库压缩之后还超大的,我认为就需要更严谨和科学的数据容灾机制了,比如主从数据库的实时同步——不止是数据库,程序文件也是这样,这样万一失误可以马上无缝切换到备用系统中去,而不影响业务。

    换句话说,这样的备份脚本,更多的还是适合于个人网站,或者小项目。商业系统中的生产环境需要更完善的权限控制机制(比如题主说的,以及回复中说到的`rm -rf / `的情况),以及我上面说到的更严谨的备份机制。
    GNiux
        76
    GNiux  
       2015-11-28 12:49:51 +08:00 via iPhone
    很喜欢这种帖子!学习了

    (别扁我…
    wdlth
        77
    wdlth  
       2015-11-28 13:16:41 +08:00
    我是备份到 Box 、 Copy 和 DropBox 。
    JiaFeiX
        78
    JiaFeiX  
    OP
       2015-11-28 13:37:00 +08:00
    我现在用 [多备份] 提供的服务, 但还是有很多坑
    zinev
        79
    zinev  
       2015-11-28 13:49:52 +08:00
    中午不睡,下午崩溃是真的。。。

    打算把公司服务器上的网站文件拖下来改点功能,大白天的全部拖下来影响正常访问,于是备份数据库之后和网站所有文件打了个 zip 包,打完之后想把压缩包里面的图片文件删了,

    嗯,没睡醒,把网站目录下的图片文件夹全给删了,

    顿时整个办公司都停下休息了,

    嗯,还好上司好,没吊打我
    markmx
        80
    markmx  
       2015-11-28 14:10:39 +08:00
    有一次 正式和本地同步数据.
    结果变成了 正式和正式..
    结果只剩表了.




    还好开启了日志功能. 中午整到 夜里 12 点. 通过日志恢复了数据..
    Pepsigold
        81
    Pepsigold  
       2015-11-28 21:46:14 +08:00 via Android
    必须留名!
    zzxa
        82
    zzxa  
       2015-11-28 23:25:50 +08:00
    难道 lz 你叫 peter 吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   910 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 20:58 · PVG 04:58 · LAX 13:58 · JFK 16:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.