Chinaunix首页 | 论坛 | 博客
  • 博客访问: 242208
  • 博文数量: 49
  • 博客积分: 3040
  • 博客等级: 少校
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 09:28
文章分类

全部博文(49)

文章存档

2011年(8)

2010年(16)

2009年(25)

分类: 系统运维

2009-12-29 10:36:08

系统为centos 4.7 server,系统默认安装的时候没有安装expect包,
yum install expect

如果要备份一个cisco的路由器
touch backupcisco

#!/usr/bin/expect
spawn telnet xxx.xxx.xxx.xxx
expect "Password:"
send "****** "
expect "ITS-SHA>"
send "en "
expect "Password:"
send "****** "
expect "ITS-SHA#"
send "copy running-config tftp "
expect "host*"
send "bbb.bbb.bbb.bbb "
expect "its-sha-confg*"
send "c2611_config "
expect "ITS-SHA#"
send "exit "

当然,你要自己配置一个TFTP server,当然配置tftp server相当的简单,不会对大家有任何困难。
yum install tftp

修改一下配置 vi /etc/xinetd.d/tftp


service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/tftp -c #modify the path of tftp server
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

以上完成,就可以重启一个xinetd的服务,
service xinetd restart
这样 你的tftp就工作了。

以上完成了expect,其实已经有了一个备份的文件,但追求完美的你一定会觉得,如果我第二次再备份,不就会重写这个文件,导致以前的备份丢失吗?
对的。
那我们就做一个shell来完成以后的工作
touch ciscobackup.sh


#/bin/bash

# Remove old backups
find /var/tftp/*_config -exec rm -fr {} ; > /dev/null 2>&1

expect /backupcisco

# Create the filename for the backup
eval `date "+day=%d; month=%m; year=%Y"`
DATE="$year-$month-$day"

mv /var/tftp/c2611_config /var/tftp/$DATE-sha-c2611
mv /var/tftp/c3750_config /var/tftp/$DATE-sha-c3750
mv /var/tftp/c3845_config /var/tftp/$DATE-sha-c3845
mv /var/tftp/HZ3825_config /var/tftp/$DATE-hzh-c3825
mv /var/tftp/HZ3560_config /var/tftp/$DATE-hzh-c3560
mv /var/tftp/asa5510_config /var/tftp/$DATE-hzh-asa5510

#compress and remove source files
tar -zcvf /var/tftp/$DATE-net-backup.tar.gz /var/tftp/$DATE* --remove-files

这样你的备份文件就会以2009-06-10-net-backup.tar.gz的方式存储在机器里,就不用担心第二次会重写了。你还可以锦上添花的做一个email通知,配置sendmail我就不在这里说了。以后有机会,我再写一个它的配置。其实只要在原来的shell后加上两行就能解决这个要求

#mail backup file to network admin
echo "This is a Networkbackup file" |mutt -a /var/tftp/$DATE-net-backup.tar.gz -s $DATE-NetWorkBackupFile
admin@testcisco.com

这样一个完美的expect加shell做的备份脚本就做好了。
测试: . /ciscobackup.sh
看看你的文件是不是已经备份成功了!
将它加入到计划任务中:
crontab -e

0 1 * * * nice -n 15 /ciscobackup.sh

每天的一点做一次备份任务!
这样,一个完整的备份工作就完成了,是不是比起手工去做要省事省心的多!:)

阅读(1580) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~