15、配置本机每隔v两天在凌晨3点20备份一次/etc目录,备份文件存放至/backup目录,文件名形如:etc-2011-11-20.tar.bz2;
crontab -e
20 3 */2 * * /bin/tar -jcf /backup/etc-`date+%F`.tar.bz2 /etc
crontab -l
16、使用find命令完成如下任务:
(1)找到/etc目录下属于root用户且至少7分钟没有访问过的普通文件,并将它们复制到/tmp/test目录;
要求:/tmp/test目录需要自己事先创建,并且为其创建符号链/users/test;
mkdir -pv /tmp/test
find /etc -user root -amin +7 -type f -exec cp {} /tmp/test \;
ln -sv /tmp/test /users/test
(2)找到/users目录下所有没有属主且没有属组的文件,并将其属组修改为gentoo,将其属组修改为magedu;
find /users -nouser -nogroup -exec chown gentoo:magedu {} \;
17、为centos用户的家目录创建磁盘使用限额,要求其能够使用的磁盘空间软限制为100M,最大为120M;要求完成后验正其有效性;
vim /etc/fstab
/dev/myvg/lv1 /users ext3 defaults,usrquota 0 0
mount -o remount,usrquota /users
quotacheck -cmu /users
edquota centos 102400 122880 0 0 /users
quotaon /users
su - centos
dd if=/devzero of=./ps bs=1M count=130
18、为逻辑卷lv1创建快照卷lv1_snap,要求此卷只读,且大小为1G;而后通过此卷将数据备份至/backup目录归档压缩存放;
lvcreate -L 1G -s -n lv1_snap -p r /dev/myvg/lv1
mkdir /lv1_snap
mount /dev/myvg/lv1_snap /lv1_snap
tar -jcf /backup/lv1.tar.bz2 /lv1_snap/*
19、写一个脚本analyzelog.sh,完成日志分析:
说明:此脚本可以接受选项(i,d,t,a),使用格式:analyzelog <-i IP|-d DATE|-t TYPE|-a> LOG_FILE :
(1)当用户使用选项-i时,统计出LOG_FILE文件中指定IP地址的访问次数(通常每一行为一次);
grep -o "^172.16.7.1" access_log | wc -l
(2)当用户使用选项-d时,统计出LOG_FILE文件中指定日期(某一天,如:16/Feb/2012)内每个IP地址访问的次数;如:
192.168.0.1:33
192.168.0.195:17
...
cat access_log.1 | grep "25/Feb/2012" | cut -d" " -f1 | sort -n | uniq -c
(3)当用户使用选项-t时,统计出LOG_FILE文件中以后缀后指定类型的文件(如.png表示png格式的图片)被访问的次数;
cat access_log | cut -d' ' -f7 | grep -c .xml
(4)当用户使用选项-a时,统计出LOG_FILE文件中每个IP地址访问的次数;
cat access_log | cut -d' ' -f1 |sort -n | uniq -c
样例日志文件为access_log、access_log.1、access_log.2,下载地址为:ftp://172.16.0.1/pub/docs
#!/bin/bash
USAGE() {
echo "analyzelog <-i IP|-d DATE| -t TYPE| -a> LOG_FILE "
}
showip() {
if ! grep "$OPTARG.*" $PATHFILE | grep $OPTARG &> /dev/null;then
return17
echo "No such $OPTARG visited ."
fi
echo -n "$OPTARG visited: "
grep -o "$OPTARG.*" $PATHFILE | wc -l
}
showdate() {
if ! grep "$OPTARG.*" $PATHFILE | grep $OPTARG &> /dev/null;then
return 18
echo "In the $OPTARG no such IP visited ."
fi
echo -n "$OPTARG visited: "
cat $PATHFILE | grep "$OPTARG" | cut -d' ' -f1 | sort -n | uniq -c | awk '{ print $2 ":", $1 }'
}
showtype() {
if ! grep "$OPTARG.*" $PATHFILE | grep $OPTARG &> /dev/null;then
return19
echo "No such IP visited the $OPTARG."
fi
echo -n "$OPTARG visited: "
cat $PATHFILE | cut -d' ' -f7 | grep -c $OPTARG
}
showall() {
echo "The whole IP visited: "
cat $PATHFILE | cut -d' ' -f1 |sort -n | uniq -c | awk '{ print $2 ":", $1 }'
}
while getopts ":i:d:t:a" opt;do
shift $[$OPTIND-1]
PATHFILE="$1"
case $opt in
i)
showip $OPTARG
;;
d)
showdate $OPTARG
;;
t)
showtype $OPTARG
;;
a)
showall $OPTARG
;;
*)
USAGE
;;
esac
done
上面 的题,我第一次做时用了很长时间,但是至少我做出来了,我还是很开心的!
每天都是崭新的一天,所以我也是崭新的心情!