自动备份云服务器数据到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 //使配置的定时任务生效。