告诉你们我是怎么玩空间的
七牛云免费提供10G的空间已经是多年前的事了,虽然空间不大但是作为一个备份空间还是绰绰有余,免费而且稳定。这次来教教大家怎么无脑备份自己的数据到七牛云。全程自动,可以设置定时推送,不怕数据丢失问题,而且还加密,即使是七牛官方也无法知道数据的内容,脚本简单高效,不需要安装任何程序就能胜任工作,确保数据安全无忧,至少我几个服务器的重要数据是这么备份的,这里跳过七牛云注册,准备好你的AK/SK码和空间名,开始吧。
第一步、下载官方的推送工具qshell
七牛贴心得适配了多个平台,可以根据自己所需下载,免安装,下载就能用
支持平台 | 链接 |
---|---|
Windows X86 | 下载 |
Windows amd64 | 下载 |
Windows arm | 下载 |
Linux X86 | 下载 |
Linux amd64 | 下载 |
Linux arm | 下载 |
Linux arm64 | 下载 |
Mac OS amd64 | 下载 |
Mac OS arm64 | 下载 |
该工具由于是命令行工具,所以只需要从上面的下载链接下载后即可执行使用,所以找个地方放好,一会需要调用。
第二步、创建脚本
创建一个脚本文件,我这里命名未backup7n.sh
vim /opt/backup7n.sh
编写脚本backup7n.sh脚本
#!/bin/bash
# 运行脚本之前,确保已经添加账号,命令:qshell account <AK> <SK> <BUCKET>
source /etc/profile
export PATH=$PATH:/opt/qshell
source ~/.bashrc
# 备份名称,用于标记,同时也是七牛的目录名
BACKUP_NAME="aml_one"
# 备份目录,多个请空格分隔
BACKUP_SRC="/disk1/ /disk2"
# 备份文件压缩密码
BACKUP_FILE_PASSWD="passwd"
# 七牛空间名
BUCKET="bucket"
# 副本数量
COPY="3"
# 七牛程序位置
SCRIPT_DIR="/opt/qshell"
# 备份文件临时存放目录,一般不需要更改
BACKUP_DIR="/tmp/backup7N"
## 获取时间,精确到秒,统一秒内上传的文件会被覆盖
NOW=$(date +"%Y%m%d%H%M%S")
mkdir -p $BACKUP_DIR
echo "获取时间"
# 打包文件
echo "开始打包."
BACKUP_FILENAME="$BACKUP_NAME-backup-$NOW.zip"
zip -q -r -P $BACKUP_FILE_PASSWD $BACKUP_DIR/$BACKUP_FILENAME $BACKUP_SRC
echo "打包完成.."
# 上传到七牛云
$SCRIPT_DIR/qshell rput "$BUCKET" "$BACKUP_NAME/$BACKUP_FILENAME" "$BACKUP_DIR/$BACKUP_FILENAME"
if [ $? -eq 0 ];then
echo "上传完成...."
else
echo "!上传失败,重新尝试!"
fi
# 副本数量检查,超过限制副本将会被删除
FILELIST=`$SCRIPT_DIR/qshell listbucket2 --prefix aml_one/ $BUCKET | awk '{print $1}' | tee $BACKUP_DIR/7nlist | wc -l`
if [[ $FILELIST -gt $COPY ]];then
echo "超过副本数量....."
DELETE=`head -n 1 $BACKUP_DIR/7nlist`
$SCRIPT_DIR/qshell delete lincloud $DELETE
echo "删除多余副本......"
echo "任务完成"
else
echo "任务完成"
fi
# 删除本地的临时文件
rm -rf "$BACKUP_DIR"
这个脚本可以自动打包和加密文件夹,相关的配置写的非常清楚,包括七牛云的副本控制的数量,根据自己的需要修改即可,值得注意的是七牛的程序位置需要就是刚刚下载qshell的位置
第三步、初始化并且运行
在开始之前,需要赋予运行权限,然后添加七牛云的账号和空间信息,这里需要用到刚刚记录下来的AK/CK密钥和空间名
chmod +x qshell
qshell account <AK> <SK> <BUCKET>
再赋予刚才创建脚本的运行的权限
chmod +x backup7n.sh
添加备份任务和运行测试
辑 /etc/crontab 文件,添加定时任务
0 2 */2 * * root /opt/backup7n.sh 2>&1 | tee /opt/backup7n.log
该任务自动运行之后会生成日志文件
手动运行一次:
bash /opt/backup7n.sh
整体来说能满足基本的需求,脚本能根据配置文件加密了文件并且上传到七牛空间,并且读取了七牛空间的文件列表,如果备份副本超过一定的数量之后会自动删除多余的副本,保证空间高效可用状态。脚本可以根据自己的需求更改,对于不需要控制副本的可以把副本数量改为9999