1、先下载脚本
wget https://api.u1l.xyz/backup.sh && sed -i 's/\r//' backup.sh
2、注册Mega云盘账号
请注意,自己在网页注册的账号是无法使用脚本登录和上传文件功能的,必须使用脚本注册的账号
sh backup.sh register
输入邮箱
/密码
/昵称
,然后你会收到一个注册验证邮件

Mega云盘地址:https://mega.nz/
3、验证账号
megareg --verify 复制上面的 复制你的注册链接
打开邮箱,复制里面的注册链接,然后拼接到上面显示的那个命令,替换里面的@LINK@admin

运行命令过后,如果提示 Account registered successfully!
就是注册成功
4、登录账号
注意:必须使用脚本注册的账号才能登录成功!
sh backup.sh login

5、配置脚本需要备份的数据
vim backup.sh
打开脚本,修改脚本里面的配置
user=数据库账户(最好是root,其他账号测试有的会没权限)
pass=数据库密码
host=数据库地址(如果是本地数据库默认就是127.0.0.1)
db_name=备份的数据库名称
project=备份的项目目录
修改好了按 ESC键 输入 !wq
退出

6、运行备份脚本
运行 crontab -e
,将下面的命令复制进去,然后保存退出
00 01 * * * sh /脚本存放路径/backup.sh backup
注意事项
1、请妥善保存mega云盘账号,如果已经通过脚本
注册了账号,以后在其他服务器上运行备份脚本的时候就不需要注册了,直接登录此账号即可。
2、如果要备份多个项目和数据库,那么就把脚本复制改个名称,然后再修改里面的配置,添加定时任务即可。
脚本代码:
#! /bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# ====================================================
# System Request:CentOS 6+ 、Debian 7+、Ubuntu 14+
# Dscription: BackUp一键脚本
# Version: 1.0
# Group: https://www.xss5.com
# ====================================================
Green="\033[32m"
Font="\033[0m"
Blue="\033[33m"
user="pay" # 用户名账号
pass="pay" # 密码
host="127.0.0.1" # 目标主机
db_name="pay" # 备份的数据库名称
project="/www/wwwroot/pay.proxyip.info" # 备份的项目目录
backup_path="/tmp/backup/"
date=$(date "+%Y%m%d%H%M%S")
project_back=${backup_path}${project##*/}_${date}.zip
mysql_back=${backup_path}${db_name}_${date}.sql
ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
rootness(){
if [[ $EUID -ne 0 ]]; then
echo "Error:This script must be run as root!" 1>&2
exit 1
fi
}
checkos(){
if [[ -f /etc/redhat-release ]];then
OS=CentOS
elif cat /etc/issue | grep -q -E -i "debian";then
OS=Debian
elif cat /etc/issue | grep -q -E -i "ubuntu";then
OS=Ubuntu
elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat";then
OS=CentOS
elif cat /proc/version | grep -q -E -i "debian";then
OS=Debian
elif cat /proc/version | grep -q -E -i "ubuntu";then
OS=Ubuntu
elif cat /proc/version | grep -q -E -i "centos|red hat|redhat";then
OS=CentOS
else
echo "Not supported OS, Please reinstall OS and try again."
exit 1
fi
}
install_megatools(){
echo -e "${Green}即将安装megatools...${Font}"
if [ "${OS}" == 'CentOS' ];then
yum -y install gcc make glib2-devel libcurl-devel openssl-devel gmp-devel tar automake autoconf libtool wget asciidoc
wget https://megatools.megous.com/builds/megatools-1.10.3.tar.gz
tar -xzvf megatools*.tar.gz
cd megatools-1.10.3
./configure
make
make install
else
apt-get -y update
apt-get install -y megatools
fi
if [ -s /usr/bin/megaput ]; then
echo -e "${Green}megatools安装完成!${Font}"
else
yum makecache
yum -y install megatools
fi
}
status_megat(){
mysql_back
project_back
}
mysql_back(){
if [ ! -x "$backup_path" ]; then
mkdir "$backup_path"
fi
echo "-----------------------------------------------"
echo -e "${Green}开始备份数据库${Font}"
mysqldump --user=$user --password=$pass --host=$host $db_name > $mysql_back
echo -e "${Green}数据库备份成功!${Font}"
echo -e "${Green}开始上传到云盘${Font}"
megaput --path /Root/$ip/mysql/ $mysql_back;
echo -e "${Green}数据库上传成功${Font}"
}
project_back(){
echo "-----------------------------------------------"
echo -e "${Green}开始备份项目${Font}"
zip -r -q $project_back $project/*
echo -e "${Green}项目备份成功${Font}"
echo -e "${Green}开始上传到云盘${Font}"
megaput --path /Root/$ip/projects/ $project_back;
echo -e "${Green}项目上传成功${Font}"
}
register(){
if [ ! -s /usr/bin/megaput ] && [ ! -s /usr/local/bin/megaput ]; then
echo -e "${Green}检测到megatools不存在,开始安装!${Font}"
checkos
rootness
install_megatools
fi
echo "----------------------开始注册Mega云盘账号----------------------"
read -p "输入邮箱:" email
read -p "输入密码:" password
read -p "输入名称:" name
megareg --register --email $email --name $name --password $password
echo "注册链接已经发送到您的邮箱,请打开邮件查看注册链接,然后复制上面的命令,将 @LINK@ 替换成你收到的注册链接"
}
login(){
if [ ! -s /usr/bin/megaput ] && [ ! -s /usr/local/bin/megaput ]; then
echo -e "${Green}检测到megatools不存在,开始安装!${Font}"
checkos
rootness
install_megatools
fi
echo "----------------------登录Mega云盘账号----------------------"
read -p "输入邮箱:" email
read -p "输入密码:" password
cat>~/.megarc<<EOF
[Login]
Username = $email
Password = $password
[UI]
Colors = true
EOF
megamkdir /Root/$ip/
megamkdir /Root/$ip/mysql/
megamkdir /Root/$ip/projects
megadf
echo "登录成功!"
}
case $1 in
'register')
register
;;
'login')
login
;;
'backup')
status_megat
;;
*)
echo "请输入的命令 register|login|backup"
;;
esac
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容