常用shell备份

3 篇文章 0 订阅

本文章备份自己运维时候写的常用的shell脚本

1 用于tcping 并且存储tcping的结果

#!/bin/bash
# mkdir -p /tcpingtest/$1 #创建存储的文件夹,文件夹的内容为/tcpingtext+传递的参数+日期
while true
	do
		days=$(date "+%Y-%m-%d")
		mkdir -p /tcpingtest/$2/$days
		time=$(date "+%Y-%m-%d-%Hh%Mm%Ss")
		echo $time
		tcpping -d -x  $1 $2 $3>> /tcpingtest/$2/$days/$time.txt
		done

2 用于监控wireguard对端是否能够ping通,如果不通则重启wireguard接口

#!/bin/bash
while true
do
	 ping -c 5 10.10.66.1 >/dev/null
	if [ $? -eq 0 ]; then
	        echo  `date`
		echo "ping succeed"
		sleep 30
	else
		echo `date`
		echo "ping failed"
	        wg-quick down /etc/wireguard/wg3.conf
		echo "wireguard wg3 is down"
		sleep 5
	        wg-quick up /etc/wireguard/wg3.conf
		echo `date`
		echo "wireguard wg3 is up"
	fi

done


3 shell脚本传参案例

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";


4 wireguard互联脚本

[Interface]
PrivateKey = gGh2lnWL1D62VCQ+ccndvcxWmWT4O07TILyR2C4PcFU=
ListenPort = 56560
Address = 10.10.88.1/32
#work
[Peer]
PublicKey = v9AaKFDmG5o5U/IF8KgWRrGTjtYMy3yGjht9itro+UY=
AllowedIPs = 10.10.88.2/32
#my_mac_pc
[Peer]
PublicKey = P+7pMpJ+T/UoGKS1nCVo2d21iRlzGw5SnhXqYpYHLnU=
AllowedIPs = 10.10.88.3/32
#my_home
[Peer]
PublicKey = F2P5Zaxb3FVt7n0c+KVYDPEQJ0dgoRnOabRS3yeEMw4=
AllowedIPs = 10.10.88.4/32
#my_work_Thinkpad
[Peer]
PublicKey = F6P0b9U/IK1m5ocpB0ZOl3j3YbujT0S0XzJJOFbtZ2s=
AllowedIPs = 10.10.88.5/32
#home_pi
[Peer]
PublicKey = rIgGto32aKv+gFDwuh9QurIsS+0m/3AiYCEKR3TYlis=
AllowedIPs = 10.10.88.6/32


5 d15启动脚本没写入启动项,导致用户每次开机后web页面挂掉,为了不动人家的脚本,自己定义了一个引用脚本
1 将rc.local 添加x权限
chmod a+x /etc/rc.d/rc.local

2 添加启动引用脚本
[root@d15_con rc.d]# pwd
/etc/rc.d

[root@d15_con rc.d]# cat testpx.sh
#!/bin/bash
cd /opt/d15
./start.sh

3 丢到系统启动项

vim /etc/rc.d/rc.local
添加如下一行
/etc/rc.d/testpx.sh


5 NetMizer添加IP脚本

#!/bin/bash
filename=$1 #指定文件目录位置
url=$2  #指定设备url 
Cookie=$3 #指定设备cookie
cat $filename | while read LINE  #每行读取文件
do
echo  "$LINE" #返回读的每行的值
OLD_IFS="$IFS" #保存旧的分隔符
IFS=";"#分隔符
array=($LINE) #将通过;分隔后的数据传递给arry数组
IFS="$OLD_IFS"#将IFS恢复成原来的
action=${array[0]} #获取action的值
vlan=${array[1]} #获取vlan的值
ip=${array[2]} #获取ip的值
mask=${array[3]} #获取mask的值
#echo $action $vlan $ip $mask "\n" 
#重复调用curl 赋值
  curl 'https://'$url'/admin/show/data/ifcfg.cgi' \
   -H 'Cookie: sessionid='$Cookie'' \
   --data-raw 'action='$action'&ifname='$vlan'&ip='$ip'&mask='$mask'' \
   --compressed \
   --insecure
echo  " " #分隔符,换行
 done


# 用法
./read2.sh  filename 设备url  用户Cookie(这个在登录设备后F12查看)

./read2.sh read 192.168.0.89:9202 1684eed9cbd2c4232958a0f813f3dcd4

# filename定义格式
行为(add/delete);vlan号(设备的vlan号);ip地址;掩码
 例子:
delete;vlan0;10.10.23.9;30
delete;vlan1;10.10.23.17;30
delete;vlan2;10.10.23.25;30
delete;vlan3;10.10.23.33;30
delete;vlan4;10.10.23.41;30
delete;vlan5;10.10.23.49;30
delete;vlan6;10.10.23.57;30


#效果
pengxiao@MacBook-Pro ~ % ./read3.sh read 192.168.0.89:9202 1684eed9cbd2c4232958a0f813f3dcd4
add;vlan0;10.10.23.9;30
{'success':true}
add;vlan1;10.10.23.17;30
{'success':true}
add;vlan2;10.10.23.25;30
{'success':true}
add;vlan3;10.10.23.33;30
{'success':true}
add;vlan4;10.10.23.41;30
{'success':true}
add;vlan5;10.10.23.49;30
{'success':true}
NICE ~ 摸鱼时间又多了


2022年3月24日改进


#!/bin/bash
filename=$1 #指定文件目录位置
url=$2  #指定设备url
Cookie=$3 #指定设备cookie
cat $filename | while read LINE  #每行读取文件
do
OLD_IFS="$IFS" #保存旧的分隔符
IFS=";" #分隔符
array=($LINE) #将通过;分隔后的数据传递给arry数组
IFS="$OLD_IFS"#将IFS恢复成原来的
ipaction=${array[0]} #获取action的值
vlan=${array[1]} #获取vlan的值
ip=${array[2]} #获取ip的值
mask=${array[3]} #获取mask的值
vlanaction=${array[4]} #vlan的绑定动作
vlanbundev=${array[5]} #获绑定vlan的接口
vlanid=${array[6]} #获取vlan id
gwaction=${array[7]} #获取gw动作
gwaddress=${array[8]} #获取gw网关
gwconut=${array[9]}  #获取gw大小

#echo $action $vlan $ip $mask "\n"
#echo "这是一个测试行"$ipaction
if [[ $ipaction == "#"* ]]; then #判断是否为注释页注释页面不打印
echo  "本行是注释页跳过"
fi
#echo  "读取的行内容$LINE" #返回读的每行的值
#重复调用curl 赋值
if [[ $ipaction == "add" || $ipaction == "delete" ]]   #添加或者删除ip操作
then
   echo  "读取的行内容$LINE" #返回读的每行的值
   if [[  $ipaction == "add" ]]; then
     echo "Vlan:$vlanid 即将添加ip地址$ip/$mask"
   fi
   if [[ $ipaction == "delete" ]]; then
      echo "Vlan:$vlanid 即将删除ip地址$ip/$mask"
   fi
  curl 'https://'$url'/admin/show/data/ifcfg.cgi' \
   -H 'Cookie: sessionid='$Cookie'' \
   --data-raw 'action='$ipaction'&ifname=vlan'$vlan'&ip='$ip'&mask='$mask'' \
   --compressed \
   --insecure
    echo " "
#echo $vlanaction
#echo $ipaction
   if [[ $vlanaction == "save_modify" && $ipaction == "add" ]]; # 绑定接口
    then
#      echo "\n"
      echo "Vlan:$vlanid 将绑定到 $vlanbundev"
  curl 'https://'$url'/admin/show/data/ifcfg.cgi' \
   -H 'Cookie: sessionid='$Cookie'' \
  --data-raw 'action='$vlanaction'&ifname=vlan'$vlan'&ifname_desc=Vlan'$vlanid'&vlandev='$vlanbundev'&vlan_tag='$vlanid'&mtu=1500&region=0' \
  --compressed \
  --insecure
   fi
   if [[ $vlanaction == "save_modify" && $ipaction == "add" ]]; # 添加网关

   then
     echo  " " #分隔符,换行
      echo "添加网关vlan:$vlanid gw $gwaddress"
      curl 'https://'$url'/admin/show/data/obroute.cgi' \
  -H 'Cookie: sessionid='$Cookie'' \
  --data-raw 'action='$gwaction'&options=4096&gw_name='$gwaddress'&gw_addr='$gwaddress'&bwcount='$gwconut'&guardtime=10&mon_dstaddr='$gwaddress'&checkicmp=1&bwunit=3' \
  --compressed \
  --insecure
   fi
echo  " " #分隔符,换行
echo "-----------------------------------------------------------------------------"
 fi
#echo  " " #分隔符,换行
 done


配置文件格式

添加行为;设备底层vlanid;ipv4地址;掩码;绑定方法必须是save_modify;绑定设备底层接口名称;vlan_tag;添加网关名称addgateway;ipv4网关;网关带宽大小

add;0;10.10.23.9;30;save_modify;ix4;61;addgateway;10.10.23.14;5
add;1;10.10.23.17;30;save_modify;ix4;62;addgateway;10.10.23.22;5
add;2;10.10.23.25;30;save_modify;ix4;63;addgateway;10.10.23.30;5

pengxiao@MacBook-Pro ~ % ./read12.sh read12 192.168.0.89:9202 31e217ff17c8c68fb8266ff6d33a686d
读取的行内容add;0;10.10.23.9;30;save_modify;ix4;61;addgateway;10.10.23.14;5
Vlan:61 即将添加ip地址10.10.23.9/30
{'success':true}
Vlan:61 将绑定到 ix4
{'success': true}
添加网关vlan:61 gw 10.10.23.14
{'success':true}
-----------------------------------------------------------------------------
读取的行内容add;1;10.10.23.17;30;save_modify;ix4;62;addgateway;10.10.23.22;5
Vlan:62 即将添加ip地址10.10.23.17/30
{'success':true}
Vlan:62 将绑定到 ix4
{'success': true}
添加网关vlan:62 gw 10.10.23.22
{'success':true}
-----------------------------------------------------------------------------
读取的行内容add;2;10.10.23.25;30;save_modify;ix4;63;addgateway;10.10.23.30;5
Vlan:63 即将添加ip地址10.10.23.25/30
{'success':true}
Vlan:63 将绑定到 ix4
{'success': true}
添加网关vlan:63 gw 10.10.23.30
{'success':true}






6 wget测试多并发测试脚本,使用办法,$1下载的链接地址 $2并发多少条


#!/bin/bash
url=$1
j=$2
#startTime=`date +%Y%m%d-%H:%M:%S`
#startTime_s=`date +%s`
for ((i=1; i<=j; i++))
do
#echo $url
wget --delete-after $url & # url,--delete使用后就删除
sleep 1 # 1m起一个进程
done
#endTime=`date +%Y%m%d-%H:%M:%S`
#endTime_s=`date +%s`
#sumTime=$[ $endTime_s - $startTime_s ]
#echo "$startTime ---> $endTime" "Total:$sumTime seconds"


7 ping监测脚本(初稿)

可监测192.168.88.0-192.168.88.254这个范围的连通性

#!/bin/bash
for i in {1..254}
do
ip=192.168.88.$i
#echo $ip
ping  -c 1 $ip &> /dev/null
if [[ $? -eq 0 ]];then
  echo $ip"通"
else
   echo $ip"不通"
fi
wait
done



8 连续行抓包并且生成抓包文件-文件名通过时间生成


#!/bin/bash
a=1
while true
do
b=`date +%y-%m-%d-%T`
tcpdump -nn -i em1 port 9203 -w /home/lingzhou/tcpdump/"${b}".pcap > /dev/null &
#echo `date` 休眠
#echo $a
sleep 300
killall tcpdump
#echo `date` 结束
#let a++
done

9 一直通过ping 测的结果


#/bin/bash
a=`ping -c 100 -i 0.1  112.90.156.101 | grep  % | awk '{print $6}'`
echo `date +%y-%m-%d" "%T` $a >> /home/lingzhou/112.90.156.101.txt

将脚本放在计划任务里面定期执行


# cat /etc/crontab
* * * * * root /home/lingzhou/pinghi.sh
* * * * * root /home/lingzhou/pinghis.sh



效果

22-07-21 18:03:11 0%
22-07-21 18:04:11 0%
22-07-21 18:05:12 0%
22-07-21 18:06:11 0%
22-07-21 18:07:11 0%
22-07-21 18:08:11 0%
22-07-21 18:09:11 0%
22-07-21 18:10:11 0%
22-07-21 18:11:11 0%
22-07-21 18:12:11 0%
22-07-21 18:13:11 0%
22-07-21 18:14:11 0%
22-07-21 18:15:11 0%
22-07-21 18:16:11 0%
22-07-21 18:17:11 0%
22-07-21 18:18:11 0%
22-07-21 18:19:11 0%
22-07-21 18:20:11 0%
22-07-21 18:21:11 0%
10 cacti 批量修改rrd文件最大值到1000G的脚本

#/bin/bash
###################
#这是一个批量修改rrd最大带宽的脚本。
#by px
# 能够将最大的带宽值改为100G  100000000000/9 G
##################
for line in `ls -F`
do
#echo $line
sleep 1
rrdtool tune ./$line -a traffic_out:1000000000000
rrdtool tune ./$line -a traffic_in:1000000000000
echo $line change ok
done


今天 2022年3月4日vps过期了,一年了共勉。
今天是2022年8月16日

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值