去我的小站阅读可能体验更佳哦–也可以加我VX拉群讨论[ wolf_dan2 ]
对于CSDN无法使用gitee或者github的图床表示无语
git init
[外链图片转存失败(img-aKkB46dG-1562480075734)(https://raw.githubusercontent.com/wolfdan666/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/1.png)]
[外链图片转存失败(img-XsKh5KKU-1562480075734)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/%E6%B7%BB%E5%8A%A0%E5%85%AC%E9%92%A5.png)]
# 一定要把下面的ssh路径改成你的ssh路径啊,然后origin也可以改成其他名字(对应本地对远程的一种称呼)
git remote add origin [email protected]:username/wordpreessbackup.git
# git 本地远程推送三连击
git add --all
git commit -m "你的注释"
git push -u origin master
[外链图片转存失败(img-9bPsMWbb-1562480075735)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/4.png)]
# hostname直接是本机,所以我们不用写
# username是我们的数据库的用户名
# mypwd是我们的数据库密码
# databasename就是要备份的数据名字
mysqldump -hhostname -uusername -pmypwd databasename > /path to backup/bakname.sql
# 所以我的语句应该是如下,你们也可以看着改动,这些数据的信息可以登陆宝塔面板看,或者找到你以前建网站的时候保存的一些重要信息
mysqldump -uwolfdanDB -ppassword wolfdanDB > wolfdanDB2019_7_6.sql
[外链图片转存失败(img-oQtNGVpl-1562480075735)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/5.png)]
注: 其实wolfdan我是先犯了下面的错误然后才有上面一条龙正确的,所以下面的这些错误修正意见基本上是说把上面步骤完善好,233
src refspec master does not match any
,我们使用git status
检查发现是没有git add --all
– > 也就是说我们要先本地commit如果每次都手动执行,难免会有忘记的时候,而且就算你博闻强识,你不嫌花时间吗?我们的追求当然是全自动化!当然现在不想折腾了可以保存页面下次来继续折腾
#!/bin/bash
#this is where
path=/home/www/wolfdan.cn
#数据库名称
sqlName=wolfdanDB
#用户名称
userName=wolfdanDB
#用户密码
userPasswd=root
#当前时间
DATE=`date +"%Y-%m-%d"`
#Log存放路径
LogFile=$path/backupLog/$DATE.log
#新建日志文件
touch $LogFile
#追加日志到日志文件
echo "wolfdan.cn git auto backup to coding server, start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "---------------------------------------------------------------------------" >> $LogFile
# 原本我以为执行bash会自动把目录切换,直到crond自动检测bash的log文件,并在log文件中告知我没有 .git文件,我才知道要自己手动cd
cd $path
mysqldump -u$userName -p$userPasswd $sqlName > wolfdanDB$DATE.sql
git add --all
git commit -m "`date '+%Y-%m-%d %H:%M:%S'`"
git push origin master
echo -e "---Have a nice day in www.wolfdan.cn----welcome to contact me by VX:wolf_dan2--------\n">> $LogFile
[外链图片转存失败(img-utsF5i7G-1562480075737)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/bash%E5%8D%87%E7%BA%A7.png)]
chmod 777 backup.sh
sh backup.sh
[外链图片转存失败(img-VIs11WO8-1562480075738)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/bash%E7%9A%84%E8%B5%8B%E5%80%BC%E6%98%AF%E4%B8%8D%E8%83%BD%E7%A9%BA%E6%A0%BC%E7%9A%84%EF%BC%81.png)]
vim /etc/crontab
没有vim可以sudo apt-get install vim
(Debian/Ubuntu用户)-sudo yum install vim
(CentOS用户)下载或者暂时用 vi
代替SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# 我的wolfdan.cn 每周备份
0 3 * * 0 root /home/www/wolfdan.cn/backup.sh
# 自动删除一个月前的sql,下周git的时候会同步到云端删除
0 4 * * 0 root /home/www/wolfdan.cn/auto_rm.sh
#重新加载cron配置文件
sudo /usr/sbin/service cron reload
#重启cron服务
sudo /usr/sbin/service cron restart
bash文件一定要小心写cpp时的习惯性变量赋值的空格!
#!/bin/bash
# 路径
Dir=/home/www/wolfdan.cn
#当前时间
DATE=`date +"%Y-%m-%d"`
#Log存放位置
LogFile=$Dir/backupLog/$DATE.log
#新建日志文件(其实backup的脚本已经建立了,不过建立同名的会直接输出到那里,所以没有关系)
touch $LogFile
#追加日志信息
echo "wolfdan,cn auto_rm .sql file a monoth ago. Start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "------------------------------------------------------------------------------" >> $LogFile
# 查找备份路径下,超过30天 且文件后缀为.sql 的 sql备份文件 然后删除
find $Dir -type f -mtime +30 -name '*.sql*' -exec rm {} \;
echo -e "----Done!Welcome to www.wolfdan.cn and add my VX:wolf_dan2---have a nice day!-------\n" >> $LogFile
chmod 777 auto_rm.sh
# 这里我们先创建1些一个月前的文件
touch -t 201905011230 test1.sql
touch -t 201906011230 test2.sql
touch -t 201907011230 test3.sql
# 查看目录下文件 当然也可以用 ll 详细查看带时间的文件信息
ls
# 然后 测试
sh auto_rm.sh
# 再次查看 当然也可以用 ll 详细查看带时间的文件信息
ls
[外链图片转存失败(img-XdZgtf9O-1562480075738)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/%E8%87%AA%E5%8A%A8%E5%88%A0%E9%99%A4%E6%95%88%E6%9E%9C.png)]
细心用户可能看到我定时文件里面以及写上了auto_rm.sh任务了,没有写上的朋友快去写上吧
vim /etc/contab
假设我们现在是11:15,那么我们把日,月,周全打成*号,然后min设置成17,hour设置成11,这样就定时在2mins后了,然后auto_rm设置比backup多1mins
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# 我的wolfdan.cn 每周备份
17 11 * * * root /home/www/wolfdan.cn/backup.sh
# 自动删除一个月前的sql,下周git的时候会同步到云端删除
18 11 * * root /home/www/wolfdan.cn/auto_rm.sh
#重新加载cron配置文件
sudo /usr/sbin/service cron reload
#重启cron服务
sudo /usr/sbin/service cron restart
当然我们又要创建一个月前的测试文件
# 这里我们先创建1些一个月前的文件
touch -t 201905011230 test1.sql
touch -t 201906011230 test2.sql
touch -t 201907011230 test3.sql
[外链图片转存失败(img-b6EMVOKW-1562480075739)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/%E5%AE%8C%E7%BE%8E%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC.png)]
[外链图片转存失败(img-9nAzY2Pp-1562480075740)(https://gitee.com/wolfdan/BlogPic/raw/master/%E5%A4%87%E4%BB%BD%E6%8A%80%E5%B7%A7/git%E5%A4%87%E4%BB%BDwordpress/777.png)]
参考的大佬文章:
https://blog.csdn.net/ouyang_peng/article/details/77334215