Linux系统运维面试题解答(3)

wKiom1ii9qjCscn2AAEEMO9NDeg316.jpg-wh_50

10. sed将文件test.txt中的所有”/opt/tmp”改为”/root/tmp”,并删除所有空行。

解答:

sed -i ‘s#/opt/tmp #/root/tmp #g’test.txt|sed -i ‘/^\s*$/d’

11. 将192.168.16.3这台Windows的server文件夹挂载到linux本地/mnt/server目录,Windows的账户为:administrator,密码为:123456

解答:

1、先在windows下面共享需要挂载的目录server。

2、确保linux与windows是在同一个局域网当中。

3、在linux下面创建一个需要挂载到的目录/mnt/server。

4、利用mount命令进行挂载。

挂载命令:mount -t cifs -o username=administrator,password=123456//192.168.16.3/server /mnt/server

12. 写一个防火墙配置脚本,只允许远程主机访问本机的80端口。(linux iptables)

解答:

#!/bin/bash

#this is a server firewall

#updated by yehaifeng

#qq:769358362

#define var

IPT=/sbin/iptables

#Remove any existing rules

$IPT -F

$IPT -X

$IPT -Z

#setting default firewallpolicy

$IPT --policy OUTPUT ACCEPT

$IPT --policy FORWARD DROP

$IPT -P INPUT DROP

#setting for loopback interface

$IPT -A INPUT -i lo -j ACCEPT

$IPT -A OUTPUT -o lo -j ACCEPT

#accept 80 port only

$IPT -A INPUT  -p tcp --dport 80 -j ACCEPT

#save iptables

/etc/init.d/iptables save

13. 编写个shell脚本将/logs目录下3天前的文件转移到/tmp目录下。

解答:

#!/bin/bash

#this is to move file 3 yearago from /logs to /tmp

#updated by yehaifeng

#qq:769358362

#define var

FILE_FROM=/logs

FILE_TO=/tmp

DAY_AGO=3

cd $FILE_FROM

for file in `find $FILE_FROM-type f -mtime +3`

do

/bin/mv $FILE_FROM/$file $FILE_TO/$file

done

14. 每天1:00备份/var/log目录下前一天的日志文件并存放到当前目录的btslog目录中,并删除15天前的log备份文件,请使用shell脚本完成。(日志格式为:btsvr.log.2016-01-01,打包备份文件格式为:btsvr.log.2016-01-01.tar.gz)

解答:

cat bak_logs.sh

#!/bin/bash

#this is to backup logs

#updated by yehaifeng

#qq:769358362

#define var

YESTERDAY=`date +%F -d '-1 day'`

LOG_DIR=/var/log

BAK_DIR=/var/log/btslog

LOG_FILE=btsvr.log

cd $LOG_DIR/

if [ -f $LOG_DIR/$LOG_FILE.$YESTERDAY] ;then{

tar zcf $LOG_DIR/$LOG_FILE.$YESTERDAY.tar.gz$LOG_DIR/$LOG_FILE.$YESTERDAY

/bin/mv $LOG_DIR/$LOG_FILE.$YESTERDAY.tar.gz/BAK_DIR/

}

else

echo “the file is not exist.”

fi

使用定时任务每天1点执行该脚本:0001 * * * /bin/bash bak_logs.sh

15. 写一个脚本进行nginx日志统计,得到访问ip最多的前10个(nginx日志路径:/nginx/default/access.log)

解答:

cat bak_logs.sh

#!/bin/bash

#this is to backup logs

#updated by yehaifeng

#qq:769358362

#define var

LOG_FILE=/nginx/default/access.log

awk '{print $1}'/application/nginx/logs/access.log |sort|uniq -c|sort -r|head -10>/tmp/ip_max.txt

echo /tmp/ip_max.txt

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12603.html