黄小华的个人网站
熬过无人问津的日子才有诗和远方!
自动备份云服务器数据到github

现在越来越多的博客系统是通过自己私人服务器所搭建的,保存的数据也越来越多
为了防止数据库服务出现异常情况,导致数据丢失,所以我就在服务器上搞个定时脚本来进行数据库备份。
后期发现存在服务器上也有一定风险,获取文件也很不方便,又搞个脚本来进行自动上传Github
数据无价

准备工作(操作系统: CentOS 7.6 64位):
一共分四个步骤

1.安装crontabs服务

yum install crontabs //安装
service crond start //手动启动crontab服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
chkconfig crond on //加入开机自动启动
查看crontab服务是否已设置为开机启动,执行命令:ntsysv

2.安装git服务并配置git账号信息

yum -y install git //安装git
git --version   //查看git版本  

//配置git用户名
git config --global user.name "git的用户名"

//配置git邮箱
git config --global user.email "git的邮箱"

//生成密钥 
ssh-keygen -t rsa -C "git的邮箱"

//查看密钥并复制到git ssh配置中
cat ~/.ssh/id_rsa.pub

3.创建GitHub项目

创建一个项目仓库  

选择 "setting"  

点击左侧菜单 "Deploy keys"  

然后选择 "Add Deploy keys"  

将上述复制的ssh密钥填入并选择 "Allow write access" 后保存  

ssh -T git@github.com 
Hi RoninLee! You ve successfully authenticated, but GitHub does not provide shell access. 
出现这句话,说明配置正常,可以使用

初始化项目

git init

设置远程仓库

git remote add origin git@github.com:xxxxxxxxxxx/xxxx.git

然后可以手动使用命令commit测试

4.设置定时任务

将下面内容写入到一个.sh 文件中。

#! /bin/bash
   message=`date -u +"%Y_%m_%d_%H_%M"`
   cd /root/.halo
   git add application.yaml upload/ db/
   git commit -m $message
   git push

赋予执行权限 chmod +x .sh
执行 crontab -e 添加 00 03 * * * /bin/sh .sh 的绝对路径。 (00 03 * * * 表示每天三点执行)。
crontab -l //查看定时任务
tail -f /var/log/cron //查看定时任务日志
service crond restart //使配置的定时任务生效。