检测网段IP使用情况的shell脚本 & 自动化ftp脚本

#!/bin/bash
#main---
network=192.168.1
ping_count=3
IP=1
:>IP_use
:>IP_idle
:>ping_action
echo "`date "+%Y%m%d %H:%M:%S"`----->脚本开始执行......"
while [ $IP -lt 255 ]
do
host=$network.$IP
echo "-------->开始检测$host服务器通迅是否正常,ping次数$ping_count."
ping $host -c $ping_count  >.ping_tmp
sleep 1
cat .ping_tmp  >>ping_action
echo "-------->服务器$host检测已完成."
sum_ping=`tail -2 .ping_tmp |head -1 |awk -F, '{print$2}' |cut -c 2-2`
loss_ping=`tail -2 .ping_tmp |head -1 |awk -F, '{print$4}'|cut -c 2-5`
if [ $sum_ping -eq $ping_count ];then
    echo "-->$host  IP 已经在使用中"
    echo "-->$host  IP 已经在使用中"  >>IP_use
  else
    echo "$host IP 目前空闲:$loss_ping"
    echo "$host IP 目前空闲"  >>IP_idle
fi
IP=$((IP+1))
done
echo "`date "+%Y%m%d %H:%M:%S"`----->脚本运行完毕......"

要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:

脚本1

#!/bin/sh
# Ping网段所有IP
# 2012/02/05
ip=1 #通过修改初值
while [ $ip != "254]; do
#yes正常,no主机不存在或不正常
ping 192.168.0.$ip -c 2 | grep -q "ttl=" && echo "192.168.0.$ip yes" || echo "192.168.0.$ip no"
ip=`expr "$ip" "+" "1"`
done

输出结果:
192.168.0.1 yes
192.168.0.2 no
192.168.0.3 no
192.168.0.4 no
192.168.0.5 yes
192.168.0.6 no
192.168.0.7 yes
...

脚本2

#!/bin/sh
# Ping网段所有IP
# 2012/02/05
ip="192.168.0."
for i in `seq 1 254`
do
ping -c 2 $ip$i | grep -q 'ttl=' && echo "$ip$i yes"|| echo "$ip$i no"
#yes正常,no主机不存在或不正常
done

输出结果:
192.168.0.1 yes
192.168.0.2 no
192.168.0.3 no
192.168.0.4 no
192.168.0.5 yes
192.168.0.6 no
192.168.0.7 yes
...

 

linux和windows下的自动ftp脚本(shell bat)

一、先来看linux下的:

#! /bin/bash
cd /ftp/
CURRENTDATE=` date +%Y%m%d `
YESTERDAY=` date -d yesterday +%Y%m%d `
THREEDAYAGO=` date -d '3 days ago' +%Y%m%d `
#echo $TWODAYAGO
ftp -n -i 34.97.34.3 << !
user ftpuser ftpuser
bin
mput $YESTERDAY.*
delete $THREEDAYAGO.*
bye
!

注:此脚本结合linux 下的crontab,定时把前一天的数据文件传到另一服务器上,并删除前3天的数据文件!

二、windows 下的ftp脚本分成2部分:
1、执行文件
2、文本文件

执行文件 后缀为 *.bat:

@echo off
cd /D E:\siis\code_tz\
ftp -i -s:"D:\ftpscript\ftp.txt"
exit

文本文件:
open 200.120.75.229
ftpuser
ftpuser
cd siis
bin
mput *
close
bye

注:此脚本结合windows下的计划任务用来定时更是更新远端服务器某个目录下的文件。

bash批量修改文件名称的方法小结(增加,去除,修改后缀)

一、加后缀

1.问题:同以目录下有海量以日期命名的文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,……,20020101.td,20020102.td……
要求: 把所有以点结尾的加上后缀.ts
我的方法:

#!/bin/bash
  for files in `ls *.`
  do
        mv $files `echo "$filests" `
  done
2. 同上
mv  $files ${files}ts
3. 同上
mv  $files  `$files.ts|sed 's/\.//' `
4. file =>file.txt
mv  $files  $files.txt
5. *.04  => *04.txt
mv $files $(echo ${files}.txt|sed 's/\.//1')
或
mv $files  `echo ${files}.txt|sed 's/\.//1' `

二、改后缀(.old => .new)

1. rename
rename .old .new  *
2.
mv $files ${file%.old}.new
3.
mv $files `echo $files|tr .old .new`
4.
mv $files `echo $files|sed 's/\.old/\.new/' `

三、去后缀 (*.dat => *)

1.  mv $files `echo $files |sed 's/\.dat//' `
2.  mv $files  `echo $files|tr .dat  (4空格)`

四、改前缀 (re* => un*)

1.  mv $files un${$files#re}
2.  mv $files `echo $files | tr re un`

 

使用Linux shell脚本实现FTP定时执行批量下载指定文件

使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示:

1、目标FTP服务器地址

#FTP服务器地址
ip=10.19.15.23

2、FTP账号和密码

u=账号

p=密码

3、使用mget结合正则表达式下载文件

#获取昨天日期,为后面下载使用
T=`date -d yesterday +%Y%m%d` 

4、连接FTP服务器,到指定路径下下载文件

ftp -n <<EOF
      open $ip
      user $u $p
      binary
      cd /hour                #远程服务器文件目录
      lcd /home/Comparisor/XN_data/hour   #本地存放的文件目录
      hash 
      prompt off               #关闭交互
      mget *$T*
      cd ../day               #远程服务器文件目录
      mget *$T*
      close               
      bye
EOF

5、将脚本加入定时任务crontab,每天6点执行。

使用crontab -e 编辑:

0 6 * * * /home/XXXX/get_xn_data.sh #后面跟脚本的绝对路径

6 、完整的脚本为:

#!/bin/bash
#获取性能系统小时粒度的指标数据
u=账号
p=密码
ip=10.195.15.23
T=`date -d yesterday +%Y%m%d`            #获取日期,根据日期抓取xdr文件
#写入日志
echo "(`date`) get data start...." >> /home/XXX/getdata.log
echo "===================================================" >> /homeXXX/getdata.log
    ftp -n <<EOF
      open $ip
      user $u $p
      binary
      cd /hour            #远程服务器文件目录
      lcd /home/Comparisor/XN_data/hour   #本地存放的文件目录
      hash 
      prompt off
      mget *$T*
      cd ../day
      mget *$T*
      close
      bye
EOF

使用Linux shell脚本实现FTP定时执行批量下载指定文件

 

posted @ 2018-07-05 10:36  dion至君  阅读(814)  评论(0编辑  收藏  举报