SHELL学习之sftp输入重定向

   上周出差联想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



你可能感兴趣的:(version,Accounts)