Bootstrap

Shell脚本学习-阶段三

文章目录-Shell学习阶段三


前言

1、用shell脚本批量建立Linux用户

实现要求:创建用户student1到student50,指定组为student组!而且每个用户需要设定一个不同的密码!

脚本实现如下:

for i in `seq 1 50`
do
	useradd -G student student$i ;
	echo student$i | password student$i --stdin;
done

linux下自动改变用户密码的办法就是:  Echo 密码 |passwd –stdin 用户名】-------------------设置相同的密码------------------------

#!/bin/bash
password="123456"
for USER in user1 user2 user3
do
	useradd -m $USER
	echo -e "${password}\n${password}" | passwd $USER
done

2、 编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下:

#!/bin/bash
for FILE in `ls /usr/local/test`
do
	if [ -f $FILE];then
		if [ `ls -l $FILE | awk '{print $5}'` -gt 100000 ];then
			mv $FILE /tmp/
		fi
	fi
done
#!/bin/bash
for FileName in `ls -l /usr/local/test | awk '$5>102400' {
    print $9}`
do
	mv $FileName /tmp/
done
ls -al /tmp/
echo "done!"

3、通过apache访问日志access.log 统计IP和每个地址访问的次数,按访问量列出前10名。

日志格式样例如下:
192.168.1.247  ---【02/jul/2010:23:44:59 + 8080 】 "GET /HTTP/1/1"   200 19

#
cat access.log | awk '{print $1}' | sort| uniq -c | sort -m | head -10

#参数说明
uniq:
	-c 显示输出中,在每行行首加上本行在文件中连续出现的次数.
sort:
	默认的排序方式是升序, -r参数就会改变成倒叙;
	你有没有遇到过10比2小的情况.
	出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,
	显然1小,所以就将10放在2前面喽.
	这也是sort的一贯作风.
cat access.log | awk '{print $1}' | sort| uniq -c | 
;