Linux 的面试小题 4
1.计划每天凌晨1点对Mysql数据库letang备份一次,备份后的文件要带有当天的日期。请编写shell脚本并设定crontab
答案:
vim /usr/local/sbin/backup.sh
#!/bin/bash
bakdir=/root/mysql_bak
d=`date +%F`
[ -d $bakdir ] || mkdir $bakdir
mysqldump -uroot --default-character-set=utf8 -p'****' letang >$bakdir/$d-letang.sql
crontab:
0 1 * * * /bin/bash /usr/local/sbin/backup.sh
2.查询文件/logs/foo.log以”abc”结尾的行。
答案:
grep “abc$” /logs/foo.log
3.如何将/usr/local/mysql/bin添加到环境变量中
答案:
vim /etc/profile.d/path.sh
写入 export PATH=$PATH:/usr/local/mysql/bin
保存后执行: source /etc/profile
4.请描述一下如何查找并杀掉letang.sh进程
答案:
ps aux|grep letang.sh 找出进程ID,然后 kill 进程ID
5.查找/logs目录下前缀为access的文件并删除
答案:
find /logs -type f -name “access*” -exec rm -rf {} \;
6.通过nginx访问日志access.log统计ip和每个地址的访问次数,并列出前10 名
日志格式如下:
123.232.208.98 - [10/Sep/2016:16:33:13 +0800] "/thread-14858-1-1.html" 200 "http://www.lishiming.net/forum.php?mod=guide&view=my" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 TheWorld 6"
答案:
IP前10名: awk '{print $1}' access.log |sort|uniq -c|sort -rn|head
网址前10名:awk -F '"' '{print $2}’ access.log|sort|uniq -c|head