zoukankan      html  css  js  c++  java
  • mongodb 数据自动备份

    创建Mongodb数据库备份目录

    mkdir -p ~/backup/mongod_bak/mongod_bak_now
    mkdir -p ~/backup/mongod_bak/mongod_bak_list
    

    新建Mongodb数据库备份脚本

    mkdir ~/crontab/ && vi ~/crontab/mongod_bak.sh #新建文件,输入以下代码

    #!/bin/sh
    DUMP=~/mongodb-linux-x86_64-4.0.1/bin/mongodump # mongodump备份文件执行路径
    OUT_DIR=~/backup/mongod_bak/mongod_bak_now # 临时备份目录
    TAR_DIR=~/backup/mongod_bak/mongod_bak_list # 备份存放路径
    DATE=`date +%Y_%m_%d` # 获取当前系统时间
    DB_USER=youuser # 数据库账号
    DB_PASS=youpassword # 数据库密码
    DB_NAME=diary # 要备份的数据恢复库名字
    DAYS=30 # DAYS=30代表删除30天前的备份,即只保留最近30天的备份
    TAR_BAK="mongod_$DB_NAME_bak_$DATE.tar.gz" # 最终保存的数据库备份文件名
    cd $OUT_DIR
    rm -rf $OUT_DIR/*
    mkdir -p $OUT_DIR/$DATE
    $DUMP -h 127.0.0.1 --port 27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE # 备份全部数据库
    tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 压缩为.tar.gz格式
    find $TAR_DIR/ -mtime +$DAYS -delete # 删除天前的备份文件
    
    chmod +x ~/crontab/mongod_bak.sh #修改文件属性,使其可执行
    crontab -e # 修改/etc/crontab #添加计划任务
    # 在下面添加
    30 4 * * * sh ~/crontab/mongod_bak.sh #表示每天凌晨4点30执行备份
    # 30 4 * * * sh ~/crontab/mongod_bak.sh >/dev/null 2>&1 # 在命令后添加 `>/dev/null 2>&1` 则不发送日志到邮件。
    

    重新启动crond使设置生效

    /sbin/service crond reload #重新载入配置
    chkconfig --level 35 crond on #加入开机自动启动:
    /sbin/service crond start #启动服务
    crontab -l #列出crontab文件
    

    恢复备份

    ./mongorestore -h 127.0.0.1 --port 27017 -u youuser -p youpassword -d diary ~/backup/mongod_bak/mongod_bak_now/

    修改 linux 时区

    如果时区不一样, 会造成转换的麻烦或理解错误。

    date  #查看时间和日期
    cal  #查看日历
    ll /etc/localtime #查看目前所用时区
    timedatectl list-timezones |grep Shanghai  #查找中国时区的完整名称
    timedatectl set-timezone Asia/Shanghai  #以完整名称修改时区
    date -s 11/03/2009  #设置日期
    date -s 17:55:55  #设置日间
    hwclock -w  #写入当前时间日期到 bios 避免重启失效
    clock -w  #写入当前时间日期到 CMOS
    

    定时任务

    当 crond 执行任务失败时会给用户发一封邮件

    cat /var/log/cron # 查看定时任务的执行列表
    cat /var/spool/mail/root # 查看定时任务发送给用户的邮件, 可看执行情况
    
  • 相关阅读:
    SpriteKit改变Node锚点其物理对象位置不对的解决
    亲热接触Redis-第二天(Redis Sentinel)
    Java设计模式(二)-单例模式
    Android—构建安全的Androidclient请求,避免非法请求
    自己主动化測试使用mybatis更新数据库信息实例
    UML回想-通信图
    第十六课 数组的引入 【项目1-5】
    被这个样式惊醒
    netty自定义解码器
    解决netty客户端接收报文不完整的情况
  • 原文地址:https://www.cnblogs.com/daysme/p/10013879.html
Copyright © 2011-2022 走看看