自动备份数据库和网站数据+自动远程传输另一台服务器上

环境:
linux服务器2台
服务器A:192.168.1.10(mysql数据库,root 123456)
服务器B: 192.168.1.50
适用的环境:这是一个非常简单的shell脚本,它适合网站比较小和数量比较少的服务器
目标:
首先,在服务器A,上利用scp,将数据的备份文件传输到服务器B,但是在用scp的时候,需要输入ssh的密码,所以,这个时候需要在服务器A的把ssh公共密钥,远程复制到服务器B中,这样,在使用scp后,就不需要输入密码
第二,在服务器A,上写一个脚本,内容主要包括2个,一个是自动备份数据库和网站数据,第二个就是,将数据备份文件传输到服务器B上
最后,设置一个自动运行脚本的计划任务

具体步骤如下;

  1. 为了使用scp的时候不需要输入密码,采用ssh另一种用密钥对来验证的方式?。

a.使用ssh-keygen 命令生成密钥。生成过程中,都选择默认的值:回车即可。

[root@xxx root]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory “/root/.ssh”.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e0:f0:3b:d3:0a:3d:da:42:01:6a:61:2f:6c:a0:c6:e7
这样会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub

b.、把这个密钥对中的公共密钥访问属性改为755,然后复制到备份的机器上去,并改名为 authorized_keys
chmod 755 id_rsa.pub
scp /root/.ssh/id_rsa.pub root@192.168.1.50:/root/.ssh/authorized_keys

openssl

 

2.编写脚本
#!/bin/bash
cd /backup
#backup database
echo ====You are In Backup Directory====
mv *.sql /oldbackup
echo ====Old Databases are Moved to oldbackup folder====
Now=$(date +”%d-%m-%Y–%H:%M:%S”)
File=backup-$Now.sql
mysqldump -u root -p123456 teddylu > $File
echo ====Your Database Backup Successfully Completed====
scp /backup/*.sql root@192.168.1.50:/home
echo ====databases are already done!====

#backup webfiles
cd /home/teddylu/public_html
mv *.zip /backup2
echo ====old webfiles are moved to backup2 folder===
Now2=$(date +”%d-%M-%Y–%H:%M:%S”)
File2=backup-$Now2.zip
zip -r $File2 ./*
scp /home/teddylu/public_html/*.zip root@192.168.1.50:/home
#/home/teddylu/public_html这个是我网站的根目录
echo ====webfiles are already done!====

脚本说明,这个脚本,就是现在备份数据库和网站数据,在通过scp复制到服务器B上,

下图,就是脚本执行的结果:

QQ20130611145443-3 QQ20130610191041

3.使用cron制订备份计划

使用Cron可以定时执行该脚本,备份会自动完成。使用?crontab?命令编辑cron 执行的计划任务。

1
#crontab –e

只要在编辑器上加入下面这一行代码保存即可。

1
013* * * * /backup/backup.sh

本任务表示的是在每天下午1点钟把数据库备份到指定的文件夹

此条目发表在Shell分类目录,贴了标签。将固定链接加入收藏夹。