linux简单的定时备份及远程拷贝
目标:在服务器A(192.168.1.12)上定时备份日志文件,并定时传到服务器B(192.168.1.11)上
1、以cms用户(可任意用户)登陆,当前目录为/home/cms
2、在该目录下建立test目录
3、进入test目录,创建测试文件如viss这样,见下方
> ls
viss.log1 viss.log2 viss.log3 viss.log4 viss.log5
4、仍然在该目录下建立一个.sh的文件,文件名为backup.sh(可以随便取)
5、编辑该文件,内容如下:
> more backup.sh
#!/bin/bash
tar -czvf visslog.$(date +%y%m%d-%H%M).tar.gz /home/cms/test/viss*
exit $?
保存退出
6、在服务器A上
:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /home/cms/.ssh/id_rsa
Enter passphrase (empty for no passphrase):直接回车
Enter same passphrase again:直接回车
Your identification has been saved in /home/cms/.ssh/id_rsa.
Your public key has been saved in /home/cms/.ssh/id_rsa.pub.
The key fingerprint is:
f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23
这样,在/home/cms/.ssh/路径下会生成id_rsa,和id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。
2)把在服务器A上生成的id_rsa.pub拷贝到B机上,假设拷贝到服务器B的当前目录下,如:
scp /home/cms/.ssh/id_rsa.pub :
3)用root帐号登陆B机,进入其主目录,创建authorized_keys文件,并设置好权限。
cd ~/.ssh
cat id_rsa.pub >>authorized_keys
chmod 400 authorized_keys
rm -f id_rsa.pub
7 在服务器A上转到CMS帐号,尝试登录服务器B。看看是不是不要密码,理论上是不需要的
scp /home/cms/.ssh/id_rsa.pub :
8、使用crontab来创建自定义的备份时间,内容如下:
:~> crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.30286 installed on Thu Jun 25 17:32:12 2009)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
30 17 * * * /home/cms/test/backup.sh
35 17 * * * scp /home/cms/visslog* :
7、以root用户进入/etc/init.d目录,运行./cron restart命令重启该进程
8、当每天的20:36的时候会有一个备份文件在/home/cms目录下,如visslog.090625-1730.tar.gz
9、当对其进行解压:~> tar -zxvf visslog.090625-1730.tar.gz的时候,会在/home/cms目录下再生成/home/cms/test/目
录,所备份的文件内容就在该目录下
10、在17点35的时候,登陆服务器B,可以发现该文件被自动传送过来了