忙了两天,终于写了这个外壳脚本。 第一次写外壳脚本是值得纪念的。 特别是平安夜圣诞节的时候。 我认为懒惰的人是生产进步的原动力。 因为手动备份数据太累了,加上网络不好,所以我考虑编写脚本让服务器自动备份数据。 终于有时间了,所以解决了这个问题。 有成就感。 “o () ) o…哈哈
有两种类型的备份:直接本地备份和将本地服务中的数据备份到其他服务。
一.本地备份:
这是比较容易实现的。 是利用名为mysqldump的命令进行备份。 其中,mysqldump参数-u后跟用户名。 这意味着您的Mysql用户名。 -p意味着输入密码。 如果不包含空格,则可以直接运行-pPasswd。 这是写shell脚本的基本。 关于mysqldump的具体使用方法,请自己在百度上查一下。
是使用了邮件命令和cacti
特定代码:
首先是准备。 就是创建几个文件夹和文件
mkdir -p /usr/backup/logs
touch/usr/backup/logs/MySQL.log
touch /usr/backup/email.txt
然后是整个脚本
#! /苹果大师/bash
#这是我写的第一个shell脚本,主要实现的功能是数据库的异地备份
# # # #
## ##
# # author :天空模式# #
# # # #
#数据库名称
db_user='root '
#数据库密码
db_passwd='passwd '
#备份的目录
back_dir='/usr/backup '
#要备份的数据表
db_name='CC '
邮件='L464417402@live.com '
EmailFile=$back_dir/email.txt
log file=$ back _ dir/logs/MySQL $ date.log
database=cacti
echo ' ' $ email文件
echo-------------- $电子邮件文件
echo $ (date ' % y-% m-% d % h : % m : % s ' ) $电子邮件文件
time='$(date '%Y-%m-%d ' ) '
mysqldump-u $ db _ user-p $ db _ passwd $ db _ name|gzip $ back _ dir/db _ $ { time }.gz
if [[ $?==0 ]];
陈真
echo ' databasebackupsuccess ' $电子邮件文件
else
echo 'DataBase Backup Fail!' $ email文件
mail-s ' databasebackupfail ' $ email $ email文件
fi
echo-------------------------------log
cat $ email文件$ log file
2 .异地备份
需要注意的是,必须将备份的文件通过ssh传输到存储备份文件的主机。 也就是说,a机器上的数据通过ssh传递到b机器,在两个主机之间建立了ssh信任。 这个具体怎么做,请参照我以前的文章。
#! /苹果大师/bash
#这是我写的第一个shell脚本,主要实现的功能是数据库的异地备份
# # # #
## ##
# # author :天空模式# #
# # # #
#数据库名称
db_user='root '
#数据库密码
db_passwd='passwd '
#备份的目录
back_dir='/usr/backup '
#要备份的数据表
b_name='CC '
邮件='L464417402@live.com '
EmailFile=$back_dir/email.txt
log file=$ back _ dir/logs/MySQL $ date.log
dump file=' $ back _ dir/db _ $ { time }.gz '
database=cacti
echo ' ' $ email文件
echo-------------- $电子邮件文件
echo $ (date ' % y-% m-% d % h : % m : % s ' ) $电子邮件文件
time='$(date '%Y-%m-%d ' ) '
mysqldump-u $ db _ user-p $ db _ passwd $ db _ name|gzip $ back _ dir/db _ $ { time }.gz
if [[ $?==0) ]
陈真
echo ' databasebackupsuccess ' $电子邮件文件
scp $ dump文件23.45.78.1/$ dump file
#要将备份文件传输到其他计算机,需要ssh信任
#rm -f $dumpFile #删除备份的文件
#RM-RF$databak_dir/daily/*#删除每天备份的文件
else
echo 'DataBase Backup Fail!' $ email文件
fi
echo-----------------------------------log
cat $ email文件$ log file
Today on history: