上周出差联想EMC的VNX存储培训,长了不少见识,知道了西瓜哥这个人物,也略微明白和原厂工程师的差距在哪些方面。而他们良好的精神面貌,热情专研的态度,给我留下了深刻的印象。
回来继续shell脚本的学习,今晚的进度如下:
#!/bin/bash #this is a scripts that auto sftp accounts' info to server #version 0.1 DATE=$(date +%Y-%m-%d) #对IP的获取还有待提高,不一定都是eth0 arg=`ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "` IP=`ifconfig eth0 | grep "net add" | awk '{print $2}' |sed 's/addr://g'` #简单的复制和打包 cp /etc/passwd /home mv /home/passwd /home/"$DATE"-"$IP"passwd tar -cf "$DATE"-"$IP".tar "$DATE"* sftp 192.168.1.151<<EOF cd /home lcd /home/qujun put "$DATE"-"$IP".tar bye EOF #上传完成后删除源文件 if [ "$?"=0 ];then rm -f "$DATE"* else exit 1 fi
遗留问题有:1、获取正确IP可能还要for循环
2、添加每月的计划任务
3、继续深入学习sed和awk
update:3.18
#!/bin/bash #this is a scripts that auto sftp accounts' info to server #version 0.3 #获取IP和日期 DATE=$(date +%Y-%m-%d) #arg=`ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "` #IP=`ifconfig eth0 | grep "net add" | awk '{print $2}' |sed 's/addr://g'` i=0 while [ $i -lt 5 ] do IP=`ifconfig eth"$i" | grep "net add" | awk '{print $2}' |sed 's/addr://g'` if [ -z "$IP" ];then : else break fi let i=$i+1 done #拷贝和打包 cp /etc/passwd /opt/ cp /etc/shadow /opt/ mv /opt/passwd /opt/"$IP"-"$DATE"passwd mv /opt/shadow /opt/"$IP"-"$DATE"shadow tar -cf "$IP"-"$DATE".tar "$IP"* #sftp上传 sftp 10.108.7.23<<EOF #cd /home lcd /opt/ put "$IP"-"$DATE".tar bye EOF #删除源文件 if [ "$?"=0 ];then rm -f "$IP"* else exit 1 fi #添加计划任务,每个月20号执行 #chkconfig --level 345 atd on #/etc/init.d/atd restart #at 1:00 +1 month -f /opt/userchk tmp=`crontab -l` echo "$tmp" |grep userchk >>/dev/null 2>&1 if [ $?=0 ];then exit else echo "* * 20 * * bash /opt/userchk >>/dev/null 2>&1">>/var/spool/cron/root fi exit 0