#!/bin/bash # 一些配置 # Dropbox 目录,根目录 / 是你已经创建的 app 目录 DROPBOX_DIR=/$(date +%Y-%m-%d) MONGO_USER="用户名" MONGO_PASS="密码" MONGO_DB="数据库名" LEANOTE_DATA_FILE_PATH=/path/to/leanote/files/dir #临时目录 TEMP_PATH=/path/to/temp/dir/ DB_DUMP_TEMP_PATH=/path/to/temp/dir/db #可执行文件路径 MONGO_DUMP_EXE=/path/to/mongodb/mongodump DROPBOX_UPLOADER=/root/leanote/autoBackup/dropbox_uploader.sh # 定义备份文件名 DataBakName=DB_$(date +"%Y-%m-%d").tar.gz FileBakName=File_$(date +%Y-%m-%d).tar.gz # Dropbox 里 90 天以上的旧数据可以清除 Old_DROPBOX_DIR=/$(date -d -90day +%Y-%m-%d) # 导出 Mongo 数据库,并压缩 echo -ne "Dump database..." $MONGO_DUMP_EXE -d $MONGO_DB -u $MONGO_USER -p $MONGO_PASS --gzip -o $DB_DUMP_TEMP_PATH tar zcf $TEMP_PATH/$DataBakName $DB_DUMP_TEMP_PATH/$MONGO_DB rm -rf $DB_DUMP_TEMP_PATH/* echo -e "Done" # 备份附件等文件 echo -ne "Backup Leanote files..." tar zcf $TEMP_PATH/$FileBakName $LEANOTE_DATA_FILE_PATH echo -e "Done" # 开始上传到 Dropbox echo -e "Start uploading..." $DROPBOX_UPLOADER upload $TEMP_PATH/$DataBakName $DROPBOX_DIR/$DataBakName $DROPBOX_UPLOADER upload $TEMP_PATH/$FileBakName $DROPBOX_DIR/$WebBakName # 清理 Dropbox 里 90 天前的旧数据,这句可能会失败,没关系,90天以后它就有用了…… $DROPBOX_UPLOADER delete $Old_DROPBOX_DIR/ #清理本地文件 rm -rf $TEMP_PATH/$DataBakName rm -rf $TEMP_PATH/$FileBakName echo -e "All done."