2014-08-01 第三周作业 崔景宇
第一题:
#! /bin/bash awk 'BEGIN{FS=":|//";} {if( $2>=01 && $2<=05 ){ print $6; }}' /home/test/access.log | grep 'musicworld' | cut -d ' ' -f 1 | sort | uniq -c | sort -n -r 第二题: 0 8 * * 1-5 /home/test/mail.sh | mail -s access_log mhmrcui@126.com 第三题: #! /bin/bash html=$(curl -s $1); html=$(echo $html | sed 's/ /\n/g' | grep -E "src\=(\"|\').*\.(png|jpg|gif)"); for src in $html; do src=$(echo $src | awk 'BEGIN{FS="\"";} {print $2}'); if [ ! -d /home/test/curl ]; then mkdir curl; chmod +w curl; fi; wget -P /home/test/curl $src; done; exit 0; [Ousland于2014-08-04 23:26编辑了帖子]
|
|
喜欢0
|
地板#
发布于:2014-08-04 15:01
|
|
4楼#
发布于:2014-08-04 15:07
|
|
5楼#
发布于:2014-08-04 17:04
Ousland: 我晚上回家重新整理下思路,再详细咨询您.第二题邮件内容为空,还记得怎样调试crontab任务吗? 在命令后面加一个输出重定向,记录下输出时的报错信息看看。最大的可能是执行时代码中的 "./access.log" 这样的相对路径找不到文件。 第三题 可以不用放到数组,在shell里只要一段字符串用换行分割,就可以用 for ... in 循环处理。 可以用 sed 或 grep 先把html里的 img src 拿到,输出为每行一个图片URL,传递给 for ...in ,用wget下载下来。 再试试,相信你能捣鼓出来。 |
|
6楼#
发布于:2014-08-04 19:23
|
|
7楼#
发布于:2014-08-04 23:28
|
|