文章目录-Shell学习阶段三
- 前言
- 1、用shell脚本批量建立Linux用户
- 2、 编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下:
- 3、通过apache访问日志access.log 统计IP和每个地址访问的次数,按访问量列出前10名。
- 4、一台监控主机,一台被监控主机。被监控主机分区使用率大于80%,就发告警邮件。放到crontab里面,每10分钟执行一次。
- 5、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告
- 6.自动ftp上传
- 7、编写shell脚本,获取本机的网络地址。
- 8、某系统管理员需要每天做一定的重复工作,编制一个解决方案:
- 9.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30
- 10.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
- 11.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
- 12.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
- 13.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
- 总结
前言
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 |