阿里云服务器自动备份

时间:2022-01-01 14:05:10

需求:备份运行在阿里云服务器的数据库(mysql--数据量很小)。

背景:数据库操作小白。

内容:实现自动备份的过程,参考的文章,以及遇到的问题。

1,先记录一下,实现自动备份前,手动备份的过程

a,备份整个数据库到.sql文件:mysqldump -u root -p 数据库名字 > /路径/文件名.sql

(在根命令运行即可,不用进入到数据库内部)

(如果不支持mysqldump命令需要先配置环境)

b,恢复数据库,先通过用户名密码进入指定数据库,在mysql命令下 运行命令:source 数据库地址

2,折腾自动备份(这部分内容摘抄自:https://www.cnblogs.com/taomylife/p/8022104.html)

第一步:创建备份数据的脚本文件

在想要备份的文件夹下,创建文件。创建命令:

vi bkDatabaseName.sh

在创建的文件中写入

输入/粘贴以下内容---备份数据库到.sql文件

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

对备份进行压缩---可以不要上面一部分,只存储压缩的文件,以节省存储空间:

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

注意: 

把 username 替换为实际的用户名; 

把 password 替换为实际的密码; 

把 DatabaseName 替换为实际的数据库名;

第二步:添加可执行权限

chmod u+x bkDatabaseName.sh

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkDatabaseName.sh

第三步,添加计划任务

检测或安装 crontab

确认crontab是否安装: 

执行 crontab 命令如果报 command not found,就表明没有安装

# crontab
-bash: crontab: command not found

如时没有安装 crontab,需要先安装它

添加计划任务

执行命令:

crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。 

输入以下内容并保存:

*/1 * * * * /home/backup/bkDatabaseName.sh 

意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。

3,遇到的问题

第一个:在自己电脑上执行crontab -e更教程一样,顺利完成配置,但是去阿里云服务器上配置,输出结果跟教程不一样,如下图阿里云服务器自动备份

没明白什么意思,就随便选了1,然后问题就来了,这个命令一直不能执行。

后来才发现是在Linux系统上第一次执行crontab会让选择编辑器,选了第一个就不能编辑或者编辑困难(自己瞎猜的)。重新选择话可以执行命令:select-editor  (针对crontab的一个命令)可以重新选择一次,重新选择了3,就顺利可以编辑啦。

学习博客地址:http://blog.csdn.net/Sweblish/article/details/8653336

第二个:写备份数据库脚本的时候,提示不能在脚本中直接数据数据库密码。现在也没解决,但是还能用。