方式一:
[root@web01 for]# cat for3.sh
#!/usr/bin/bash
for i in {1..254}
do
{
ip=10.0.0.$i
ping -W1 -c1 $ip &> /dev/null
if [ $? -eq 0 ];then
echo "$ip 存活" >>ok.txt
fi
}&
done
wait
方式二:
[root@manager for]# cat for-07.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-07.sh
#Description:
ip=10.0.0.
for n in `seq 1 254`
do {
ping -W1 -c1 $ip$n &>/dev/null
rc=0
if [ $rc -eq 0 ];then
echo "$ip$n 存活"
fi
}&
done
wait
方式一:
[root@web01 for]# cat for4.sh
#!/usr/bin/bash
ip=10.0.0.
for i in `seq 1 254`
do {
ping -W1 -c1 $ip$i &> /dev/null
if [ $? -eq 0 ];then
echo "$ip$i 存活" >>yes.txt
else
for j in {1..3}
do
ping -W1 -c1 $ip$i &> /dev/null
if [ $? -eq 0 ];then
echo "$ip$j 存活" >>yes.txt
else
echo "$ip$j 不存活" >>err.txt
fi
done
fi
}&
done
wait
方式二:
[root@manager for]# cat for-12.sh
#!/bin/bash
for i in {1..254}
do
{
ip=10.0.0.$i
ping -W1 -c1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo "$ip 存活" >> ok.txt
else
#如果判断第一次不存活,则在进行一次for循环,循环3次
for j in {1..3}
do
ping -W1 -c1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo "$ip 存活" >> ok.txt
else
echo "$ip 不存活" >> err.txt
fi
done
fi
}&
done
wait
nmap localhost #查看主机当前开放的端口
nmap -p 1024-65535 localhost #查看主机端口(1024-65535)中开放的端口
nmap -PS 192.168.21.163 #探测目标主机开放的端口
nmap -PS22,80,3306 192.168.21.163 #探测所列出的目标主机端口
nmap -O 192.168.21.163 #探测目标主机操作系统类型
nmap -A 192.168.21.163 #探测目标主机操作系统类型
nmap --help #更多nmap参数请查询帮助信息
ip.txt port.txt
10.0.0.1 80
10.0.0.2 22
10.0.0.3 3306
10.0.0.4 23
10.0.0.5 443
10.0.0.6 9000
10.0.0.7 123
10.0.0.8 6379
10.0.0.9 10050
172.16.1.5 10051
192.168.10.1
172.16.1.6
[root@web01 for]# cat for6.sh
#!/usr/bin/bash
#遍历文件中的ip地址
for ip in $(cat ip.txt)
do {
#第二次循环,遍历文件中的端口号
for port in $(cat port.txt)
do
#探测ip与端口的存活状态
nc -vz -w 1 $ip $port &> /dev/null
if [ $? -eq 0 ];then
echo "$ip $port 端口已开放"
else
echo "$ip $port 端口未开放" >>er.txt
fi
done
}&
done
wait
This is 1 user: root
This is 2 user: bin
This is 3 user: daemon
This is 4 user: adm
...............
1.怎么获取所有的用户
2.遍历/etc/passwd这个文件
3.如何让数字的编号进行
[root@manager for]# cat for-12.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-12.sh
#Description:
i=1
user=$(cat /etc/passwd |awk -F ":" '{print $1}')
for ur in $user
do
echo "This is ${i} $ur"
i=$[ $i +1 ]
sleep 1
done
[root@manager for]# cat for-10.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-10.sh
#Description:
read -p "请输入创建用户的前缀:" qian
#for user in {1..100}
for user in $(seq -w 1 100)
do
if [ -z $qian ];then
echo "请输入前缀"
fi
id $qian$user &> /dev/null
if [ $? -ne 0 ];then
useradd $qian$user
if [ $? -eq 0 ];then
echo "$qian$user is OK"
fi
else
echo "$qian$user用户已存在"
fi
done
[root@manager for]# cat for-11.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-11.sh
#Description:
. /etc/init.d/functions
read -p "请输入创建用户的前缀:" qian
if [ -z $qian ];then
echo "请输入前缀,谢谢!"
exit 1
fi
read -p "请输入要创建几个用户:" num
if [[ ! $num =~ ^[0-9]+$ ]];then
echo "请输入整数"
fi
for i in $(seq "$num")
do
user=${qian}$i
useradd $user &> /dev/null
if [ $? -eq 0 ];then
action "用户创建成功" /bin/true
else
action "用户创建失败" /bin/false
fi
done
例如:前缀cheng,个数10,代表创建cheng1~cheng10,总共10个用户。
[root@manager for]# cat for-11.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-11.sh
#Description:
. /etc/init.d/functions
read -p "请输入创建用户的前缀:" qian
if [ -z $qian ];then
echo "请输入前缀,谢谢!"
exit 1
fi
read -p "请输入要创建几个用户:" num
if [[ ! $num =~ ^[0-9]+$ ]];then
echo "请输入整数"
fi
for i in $(seq "$num")
do
user=${qian}$i
useradd $user &> /dev/null
if [ $? -eq 0 ];then
action "用户创建成功" /bin/true
else
action "用户创建失败" /bin/false
fi
done
[root@manager for]# cat for-13.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-11.sh
#Description:
. /etc/init.d/functions
read -p "请输入创建用户的前缀:" qian
if [ -z $qian ];then
echo "请输入前缀,谢谢!"
exit 1
fi
read -p "请输入要创建几个用户:" num
if [[ ! $num =~ ^[0-9]+$ ]];then
echo "请输入整数"
fi
for i in $(seq "$num")
do
user=${qian}$i
useradd $user &> /dev/null
if [ $? -eq 0 ];then
action "用户创建成功" /bin/true
else
action "用户创建失败" /bin/false
fi
echo "123" |passwd --stdin $user &> /dev/null
if [ $? -eq 0 ];then
action "增加密码成功" /bin/true
else
action "设置密码失败" /bin/false
fi
done
[root@manager for]# cat for-15.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-15.sh
#Description:
for user in $(cat user.txt)
do
useradd $user
done
[root@manager for]# cat for-16.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-16.sh
#Description:
for user in $(cat user.txt)
do
us=$(echo $user |awk -F ":" '{print $1}')
pw=$(echo $user |awk -F ":" '{print $2}')
id $us &> /dev/null
if [ $? -eq 0 ];then
continue
else
useradd $us
echo "$pw" | passwd --stdin $us &> /dev/null
echo "$us is create ok......"
fi
done
mkpasswd -l
cheng01:dasd1#!@#!@dsa
cheng02:dascxasdas1!@#
[root@manager for]# cat for-17.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-17.sh
#Description:
. /etc/init.d/functions
i=8
read -p "请输入你需要创建用户的前缀:" qian
if [ -z $qian ];then
echo "不能输入回车"
exit
fi
for user in {1..10}
do
id $qian$user &> /dev/null
if [ $? -ne 0 ];then
useradd $qian$user
mkpasswd -l $i
i=$[ $i +1 ]
echo "$qian$user:$(mkpasswd -l $i)" >> pass.txt
echo "$qian$user 创建成功"
fi
done
1.提示用户输入需要删除的用户以及删除的个数。
2.如果用户存在则删除,如果不存在则提示no such user。
[root@manager for]# cat userdel.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: userdel.sh
#Description:
read -p "请输入删除用户的前缀:" qian
if [ -z $qian ];then
echo "请输入用户前缀"
fi
read -p "请输入你要删除几个:" num
if [[ ! $num =~ ^[0-9]+$ ]];then
echo "请输入数字"
exit
fi
for user in {1..100}
do
id $qian$num &> /dev/null
if [ $? -eq 0 ];then
userdel $qian$user
echo "$qian$user 删除成功"
else
echo "$qian$user no such user"
fi
done
1.如何拿到所有的库名称 wordpress jpress zabbix zrlog
2.循环拼接备份命令 mysqldump -uroot -pcheng.com -B zabbix >/mysql/data/zabbix.sql
[root@db01 ~]# cat mysql-db.sh
#!/usr/bin/bash
db_path=/backup/mysql
date_time=$(date +%F)
db_name=$(mysql -uroot -e "show databases" |sed 1d |egrep -v "*_schema|test|mysql")
[ -d $db_path ] || mkdir -p $db_path
for i in $db_name
do
mysqldump -uroot -B ${i} > $db_path/${i}_${date_time}.sql
if [ -f $db_path/${i}_${date_time}.sql ];then
echo "$i backup is OK....."
else
echo "$i backup is error...."
fi
done
#保留最近180天的数据
if [ -f $db_path/$date_time/day.txt ];then
touch $db_path/$date_time/day.txt
find $db_path -type f -mtime +180 -delete > $db_path/$date_time/day.txt
fi
[root@db01 ~]# cat mysql-backup.sh
#!/usr/bin/bash
db_path=/backup/mysql
date_time=$(date +%F)
db_name=$(mysql -uroot -e "show databases;" |sed 1d |egrep -v "*_schema|mysql|test")
#1.准备备份的目录
[ -d $db_path ] || mkdir -p $db_path
#2.获取所有的库名称
for i in $db_name
do
#3.获取对于库的所有表
db_table=$(mysql -uroot -e "use $i; show tables" |sed 1d)
for j in $db_table
do
[ -d $db_path/$i/$date_time ] || mkdir -p $db_path/$i/$date_time
mysqldump -uroot $i $j >$db_path/$i/$date_time/${j}.sql
done
done
[root@manager for]# cat for-20.sh
#!/bin/bash
if [ -s name.txt ];then
User=$(sort --random-sort name.txt |awk 'NR==1')
echo "$User"
grep $User name.txt >> name1.txt
sed -i '/'$User'/d' name.txt
else
cat name1.txt>name.txt
rm -rf name1.txt
fi
[root@manager for]# cat for-20.sh
#!/bin/bash
#1.只循环20次
for i in {1..20}
do
#统计一下名单中的行号
line=$(cat name.txt|wc -l)
#设定一个随机的变量值,但这个值不能超过文件名单的行号
sj=$(( ${RANDOM}%$line+1 ))
# 循环20次,打印20次名单
echo -e " $(sed -n "${sj}p" name.txt) "
sleep 0.1
done
sj=$(( $sj + 1 ))
username=$(sed -n "${sj}p" name.txt)
echo -e 这次回答问题的是: "\033[32m $username \033[0m" 同学。
[root@manager for]# cat for-19.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-19.sh
#Description:
for i in {9..1}
do
echo -ne "$i\b"
sleep 1
done
echo -e "\b hello world"
[root@manager for]# cat for-19.sh
#!/bin/bash
#Date: 2019-10-31
#FileName: for-19.sh
#Description:
for i in {10..1}
do
echo -n -e "最后倒计时: $i \r"
sleep 1
done
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
页面中的所有rpm包 wget[root@manager for]# cat for-24.sh
#!/bin/bash
#1.获取网页的源代码
#2.对网页源代码进行过滤筛选,提取文件名称
#3.将下载的url和文件名称拼接,通过wget下载
Url_File=url.txt
Pkg_Name=$(grep "| awk -F '"' '{print $2}' | egrep -v "debuginfo|repodata|\.\./")
Get_Url=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
for package in $Pkg_Name
do
#完整的下载url地址
url_package=$Get_Url$package
#指定下载至某个目录
wget -O /mnt/$package $url_package &>/dev/null
#判断下载是否正常
if [ $? -eq 0 ];then
echo "软件包: $pkg is ok..."
fi
done
[root@manager while]# cat while-3.sh
#!/usr/bin/bash
while read user
do
id $user &> /dev/null
if [ $? -ne 0 ];then
useradd $user
echo "$user用户创建成功"
else
echo "$user用户已存在"
fi
done.txt
[root@manager while]# cat while-4.sh
#!/usr/bin/bash
while read user2
do
user=$(echo $user2|awk '{print $1}')
pass=$(echo $user2|awk '{print $2}')
id $user &> /dev/null
if [ $? -ne 0 ];then
useradd $user &> /dev/null
echo "$pass" |passwd --stdin $user
if [ $? -eq 0 ];then
echo "$user 用户创建成功"
fi
else
echo "$user 用户已存在"
fi
done.txt
[root@manager ~]# cat cs.sh
#!/usr/bin/bash
sj=$[$RANDOM%100+1]
i=1
while true
do
read -p "请输入你要猜的数字:" Action
if [ $Action -eq $sj ];then
echo "恭喜你猜对了"
break
elif [ $Action -lt $sj ];then
echo "你猜小了"
elif [ $Action -ge $sj ];then
echo "你猜大了"
fi
let i++
done
echo "你总共猜了$i 次,失败了 $[$i -1] 次"