1.写一个脚本实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符
#!/bin/bash
#description: useradd
for i in seq 1 20
do
pwd=$(cat /dev/urandom | head -1 | md5sum | head -c 5)
useradd user$i
echo "user$i$pwd" | passwd --stdin user$i
echo user$i user$i$pwd" >> userinfo.txt
done
2.杀死进程
http
的
shell
脚本
pid=`pgrep httpd`
for i in $pid
do
kill -9 $i
done
3.利用
shell
开发一个
rsync
服务的启动停止脚本并通过
chkconfig
进行开关机管理
说明:
A
:
rsync
服务的
PID
文件路径为:
/var/run/rsyncd.pid
C
:
rsync
服务的停止命令为:
kill -USR2 `cat /var/run/rsyncd.pid` && rm -f
/var/run/rsyncd.pid
启动脚本
#!/bin/bash
#
#
# Define variables
RETVAL=0
Pid=/var/run/rsyncd.pid
# Determine the user to execute
if [ $UID -ne $RETVAL ];then
echo "Must be root to run scripts"
exit 1
fi
# Load the local functions library
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
# Define functions
start(){
if [ ! -f "$Pid" ];then
rsync --daemon
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "Start rsync service" /bin/true
else
action "Start rsync service" /bin/false
fi
else
echo "Rsync is running"
exit 1
fi
return $RETVAL
}
stop(){
if [ -f "$Pid" ];then
kill -USR2 $(cat $Pid)
find /var/run -maxdepth 1 -type f -name "rsyncd.pid"|xargs rm -f
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "Stop rsync service" /bin/true
else
action "Stop rsync service" /bin/false
fi
else
echo "Rsync is not running"
exit 1
fi
return $RETVAL
}
status(){
if [ -f "$Pid" ];then
echo "Rsync is running"
elseecho "Rsync is not running"
fi
return $RETVAL
}
# Case call functions
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
stop
sleep 2
start
RETVAL=$?
;;
status)
status
RETVAL=$?
;;
*)
echo "USAGE:$0 {start|stop|restart|status}"
exit 1
esac
# Scripts return values
exit $RETVAL
4
、写一个脚本,实现判断
192.168.1.0/24
网络里,当前在线的
ip
有哪些。
#!/bin/bash
for ip in `seq 1 255`
do
{
ping -c 1 192.168.1.$ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo 192.168.1.$ip UP
else
echo 192.168.1.$ip DOWN
fi
}&
done
wait