Linux 的面试小题 6
1. 请用shell查询file1里面空行所在的行号
答案:
grep -n "^$" file1
2. 编写ShellScript 查询file1以abc结尾的行
答案:
grep “.*abc$” file1
3. 打印出file1文件第1到第3行
答案:
sed -n ‘1,3’p file1
4. 如何将本地80端口的请求转发到8080端口,当前主机ip为192.168.2.18
答案:
iptables -t nat -I PREROUTING -d 192.168.2.18 -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
5. 分别写出每天的早上3 点执行一次/usr/bin/waks.day.sh,每周日早上4点执行一次/usr/bin/baks_week.sh
答案:
0 3 * * * /bin/bash /usr/bin/waks.day.sh
0 4 * * 7 /bin/bash /usr/bin/baks_week.sh
6. 如何查看Java占用线程及线程所在目录
答案:
ps -eLf |grep Java 查看所有线程,记住第二列的数字即pid
ls -l /proc/pid 查看cwd那行即为目录
7. 通过apache访问日志access.log统计IP和每个地址访问的次数,按访问量列出前10名。日志格式样例如下
192.168.1.247 - - [02/Jul/2010:23:44:59 +0800] “GET / HTTP/1.1” 200 19
答案:
awk ‘{print $1}’ access.log|sort -n|uniq -c|sort -rn|head
8.如何用mysql命令进行备份和恢复?以test库为例,创建一个备份,并再用此备份进行恢复。
答案:
备份 mysqldump -uroot -p’***’ test > /tmp/test.sql
恢复mysql -uroot -p’***’ < /tmp/test.sql
9.你认为在系统调优方面都包括那些工作,以Linux为例,请简明阐述,并举一些参数为例。
答案:
Linux系统调优可以通过这几个方面来做,比如文件系统优化(分区调优,格式化时根据存储文件特性,指定合适的块大小,noatime,日志隔离,软raid,有效使用/dev/shm,关闭不必要的服务)、内核参数优化(net.ipv4.tcp_syncookies = 1, net.ipv4.tcp_max_tw_buckets = 65535, net.ipv4.tcp_tw_recycle = 1, net.ipv4.tcp_tw_reuse = 1)
10.请用iptables 写出只允许10.1.8.179访问本服务器的22端口
答案:
iptables -I INPUT -s 10.1.8.179 -p tcp --dport 22 -j ACCEPT
11.Nginx启动,重启,关闭命令:以及升级nginx切换命令
答案:
启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
重启: /usr/local/nginx/sbin/nginx -s stop 掉再启动
关闭:/usr/local/nginx/sbin/nginx -s stop
升级:/usr/local/nginx/sbin/nginx -s reload
12.现在因为访问人数太多,网站时常出现too many connection的错误,请给出解决的方案。
答案:
Too many connections是因为连接mysql的客户端数量超过了它的最大限定值。mysql默认最大连接数为100个,而程序在打开连接后,并未能及时的关闭mysql的连接,造成连接数超出默认值。临时解决方案:在my.cnf里配置max_connections=1024 (这个数值根据业务访问量多少来决定,通常1024是足够的),更改后需要重启mysqld服务,若不能重启服务,也可以进入mysql中,执行set global max_connections = 1024;。当然,最好的解决方案就是和开发人员一起找出不能正常关闭连接的问题,比如要通过查看慢查询日志分析执行慢的sql。

浙公网安备 33010602011771号