介绍
基本信息
作者:朱明宇
名称:实时监控内存
作用:实时监控内存,并每 3 秒钟更新 1 次状态信息,总过进行 100 次
使用方法
1. 给此脚本添加执行权限
2. 执行此脚本
脚本
#!/bin/bash
i=1
free -m | head -1
while [ $i -le 100 ]
do
let i=i+1
free -m | grep Mem
sleep 3
done
作者:朱明宇
名称:实时监控内存
作用:实时监控内存,并每 3 秒钟更新 1 次状态信息,总过进行 100 次
1. 给此脚本添加执行权限
2. 执行此脚本
#!/bin/bash
i=1
free -m | head -1
while [ $i -le 100 ]
do
let i=i+1
free -m | grep Mem
sleep 3
done
作者:朱明宇
名称:批量重启多个远程服务器的服务
作用:批量重启多个远程服务器的服务
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本
1. myuser=”eternalcenter” #登录远程服务器的用户
2. myserver=”192.168.1.1 192.168.1.2″ #要登录的远程服务器,以空格隔开
3. myservice=”nginx” #需要重启的服务,以空格隔开
4. mysudo=”no” #是否使用 sudo 提权,请选择 yes 或者 no
1. 此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器
2. 必须以 root 用户执行本脚本
#!/bin/bash
####################### Separator ########################
myuser="eternalcenter.com"
myserver="192.168.1.1 192.168.1.2 192.168.1.3" #each server is separated by a space
myservice="nginx" #each myservice is separated by a space
mysudo="yes" #please choose "yes" or "no"
####################### Separator ########################
mynow=`date +%Y-%m-%d-%H-%s`
if [ $mysudo == 'yes' ];then
myrestart(){
ssh -t $1@$2 "sudo -u root su - root -c \"systemctl restart $3\""
}
echo "use sudo"
fi
if [ $mysudo == 'no' ];then
myrestart(){
ssh -t $1@$2 "systemctl restart $3"
}
echo "don't use sudo"
fi
for services in $myservice
do
for servers in `echo $myserver`
do
myrestart $myuser $servers $services
done
done
作者:朱明宇
名称:批量将本地文件拷贝到多个远程服务器
作用:批量将本地文件拷贝到多个远程服务器
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本
1. myuser=”eternalcenter” #登录远程服务器的用户
2. myserver=”192.168.1.1 192.168.1.2″ #要登录的远程服务器,以空格隔开
3. myfile=”/home/zhumingyu/test1.txt /home/zhumingyu/test2.txt” #要拷贝的文件,以空格隔开,必须是绝对路劲
4. mysudo=”no” #是否使用 sudo 提权,请选择 yes 或者 no
1. 此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器
2. 必须以 root 用户执行本脚本
#!/bin/bash
####################### Separator ########################
myuser="eternalcenter"
myserver="192.168.1.1 192.168.1.2" #each server is separated by a space
myfile="/home/zhumingyu/test1.txt /home/zhumingyu/test2.txt" #each file is separated by a space, absolute road force must be used
mysudo="no" #please choose "yes" or "no"
####################### Separator ########################
mynow=`date +%Y-%m-%d-%H-%s`
mycontext=${myfile##*\/}
if [ $mysudo == 'yes' ];then
myreplace(){
scp $3 $1@$2:/tmp/$5
ssh -t $1@$2 "sudo -u root su - root -c \"mv $3 $3-$4;mv /tmp/$5 $3\""
}
echo "use sudo"
fi
if [ $mysudo == 'no' ];then
myreplace(){
scp $3 $1@$2:/tmp/$5
ssh -t $1@$2 "mv $3 $3-$4;mv /tmp/$5 $3"
}
echo "don't use sudo"
fi
for files in $myfile
do
if [ -f $files ];then
for servers in `echo $myserver`
do
myreplace $myuser $servers $files $mynow $mycontext
done
else
echo "$files does not exist"
fi
done
作者:朱明宇
名称:openSUSE & SLES 显示所有可升级的软件版本,并自动生成相应的升级命令
作用:openSUSE & SLES 显示所有可升级的软件版本,并自动生成相应的升级命令
给此脚本添加执行权限
执行此脚本
执行此脚本大致会生成以下内容:
zypper update MozillaFirefox-78.12.0-lp152.2.61.1 MozillaFirefox-translations-common-78.12.0-lp152.2.61.1 alsa-oss-1.1.8-lp152.4.3.1
#!/bin/bash
m=''
for n in `zypper list-updates | tail -n +5 | awk '{print $7"-"$11}'`
do
m="$m $n"
done
echo "zypper update $m"
作者:朱明宇
名称:批量修改多个远程服务器某个用户的密码
作用:批量修改多个远程服务器某个用户的密码,并显示密码更新时间
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每个服务器名占用 1 行
3. 给脚本分割线里的变量赋值
4. 给此脚本添加执行权限
5. 执行此脚本
1. list=”list.txt” #指定清单的目录和名称
2. user=eternalcenter #指定要修改密码的用户
3. password=eternalcenter #指定要修改的密码
此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器,并且可以通过 sudo 获得 su 的 root 权限
#!/bin/bash
####################### Separator ########################
list="list.txt"
user=eternalcenter
password=eternalcenter
####################### Separator ########################
num=1
cat $list
for i in `cat $list`
do
echo $num
echo $i
ssh -t $i "sudo -u root su - root -c \"echo $password | passwd --stdin $user\""
ssh -t $i "sudo -u root su - root -c \"echo $user:$password | chpasswd\""
ssh -t $i sudo -u root su - root -c \"chage -l $user\"
let num++
echo
done