Quantcast
Channel: 天天向上 » shell
Viewing all articles
Browse latest Browse all 5

VPS 自动备份数据库

$
0
0

1, 这是我的自动备份数据库 SHELL 脚本, 它将在 VPS 服务器上运行, 导出数据库后压缩成包, 然后通过 scp 命令将压缩包备份到另一台服务器( x4100 ) 中.

#!/bin/bash
D="/root/backup"
T=`date +%Y%m%d`
if [ ! -d "${D}/${T}" ]; then
	/bin/mkdir "${D}/${T}"
fi
/usr/local/mysql/bin/mysqldump --host=localhost --user=root --password=数据库密码 要备份的数据库名 > "${D}/${T}/${T}.sql"
cd ${D}
/bin/tar -czf  "${D}/${T}.tar.gz" "${T}"
/usr/bin/scp "${D}/${T}.tar.gz" kuco@x4100.unix-center.net:~/web_backup/studyday.net

2, 设置 Crontab , 更多的 crontab 介绍在这里

crontab -e
30 04 * * * /bin/sh /root/backup/web_backup.sh

3, 可能会遇到的问题:

在 STEP 1 中 scp 远程复制命令时会遇到输入密码的提示, 如果没有密码输入, 会导致复制不成功. 通过百度找到了解决的办法.

1, 在 VPS 服务器上的 ~/.ssh/ 目录下生成密钥文件:
mkdir -p ~/.ssh
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

2, 在 x4100 服务器上配置:
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

3, 将 VPS 服务器的 ~/.ssh/id_rsa.pub 内容追加到 x4100 服务器的 ~/.ssh/authorized_keys 里面

这样就可能在调用 scp 命令时没有密码输入提示了.

Viewing all articles
Browse latest Browse all 5

Latest Images

Trending Articles





Latest Images