共计 3721 个字符,预计需要花费 10 分钟才能阅读完成。
1
写一个脚本查找最后创建时间是三天前,后缀是 *.log 的文件并删除
find .-ctime +3 -name '*.log' | rm -rf
2
统计 ip 访问情况,要求分析 nginx 访问日志,找出访问页面数量在前十位的 ip
cataccess.log | awk '{print $1}' | uniq -c | sort -rn | head -10
3
使用 tcpdump 监听主机为 192.168.1.1,tcp 端口为 80 的数据,同时将输出结果保存输出到 tcpdump.log。
tcpdump 'host 192.168.1.1 and port 80' > tcpdump.log
4
利用 Python 打印前一天的本地时间,格式为 '2016-03-29 13:58:34'
time.strftime('%y-%m-%d%H:%M%:%S' time.locatime(time.time() -86400))
5
用 Python 将‘123456’反转为‘654321’
‘123456’[::-1]
6
利用 Python 执行 shell 命令并取得返回结果
>>> import subprocess>>>
a=subprocess.popen('ls',shell=True,stdout=subprocoss.PIPE, stderr=subprocess.PIPE)>>>stdout,sterr = a.communicate()>>>print stdout
7
请用 Python 继承 process,并写一个并行执行的类,并写出使用过程。
import multiprocessingimport timeclass ClockProcess(multiprocessing.Process): def __init__(self, interval): multiprocessing.Process.__init__(self) self.interval = interval def run(self): n = 5 while n > 0: print(“the time is {0}”.format(time.ctime())) time.sleep(self.interval) n -= 1
8
如何将本地 80 端口的请求转发到 8080 端口,当前主机 IP 为 192.168.2.1
Iptables –t nat -A PREROUTING -d 192.168.2.1 -p tcp –dport 80 -j REDIRECT –to 8080
9
在 11 月份内,每天的早上 6 点到 12 点中,每隔 2 小时执行一次 /usr/bin/httpd.sh 怎么实现
0 6-12/2 * 11 * /usr/bin/httpd.sh
10
编写个 shell 脚本将 /usr/local/test 目录下大于 100K 的文件转移到 /tmp 目录下
find /usr/local/test -type f -size +100k -exec mv {} /tmp/
或
#!/bin/bashfilelist=$(ls /usr/local/test -l | grep “^-” | awk '{print $9}') filepath=”/usr/local/test”for file in $filelistdo filesize=$(du -s $filepath$file |awk '{print $1}') if [$filesize -gt 100] then mv $filepath$file /tmp/fidone
11
简述 raid0 raid1 raid5 三种工作模式的工作原理及特点。
RAID 0
带区卷,连续以位或字节为单位分割数据,并行读 / 写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合。
RAID 1
镜像卷,它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据,不能提升写数据效率。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此 RAID1 可以提高读取性能。RAID 1 是磁盘阵列中单位成本最高的,镜像卷可用容量为总容量的 1 /2,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID5
至少由 3 块硬盘组成,分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据(最多允许 1 块硬盘损坏)。所以 raid5 可以实现数据冗余,确保数据的安全性,同时 raid5 也可以提升数据的读写性能。
12
oracle 数据库备份方式
从物理与逻辑的角度分类: 物理备份:对数据库操作系统的物理文件(如数据文件、控制文件、日志文件等)的备份,物理备份又分为冷备份和热备份,前者是在关闭数据库的时候进行的,后者对正以归档日志方式进行的数据库备份,可以使用 RMAN 进行数据库的物理备份逻辑备份:对数据库逻辑组件(如表、表空间、存储过程等数据库对象)的备份逻辑备份的手段很多,如 exp、数据泵 expdp、数据库闪回技术等
从数据库的备份策略角度分类: 完全备份:每次对数据库进行完整备份增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。差异备份:备份那些自从上次完全备份之后被修改过的文件。
13
如何查看占用端口 8080 的进程
netstat -anpt | grep 8080
或
lsof -i :8080
14
请写出 apache2.X 版本的两种工作模式,以及各自工作原理。如何查看 apache 当前所支持的模块,并且查看是工作在哪种模式下?
prefork(多进程,每个子进程产生一个线程) 和 worker(多进程多线程,每个进程生成多个线程 ) 其主要工作方式是:当 Apache 服务器启动后,mpm_prefork 模块会预先创建多个子进程 (默认为 5 个),每个子进程只有一个线程,当接收到客户端的请求后,mpm_prefork 模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求。如果当前的请求数将超过预先创建的子进程数时,mpm_prefork 模块就会创建新的子进程来处理额外的请求。Apache 总是试图保持一些备用的或者是空闲的子进程用于迎接即将到来的请求。这样客户端的请求就不需要在接收后等候子进程的产生。由于在 mpm_prefork 模块中,每个请求对应一个子进程,因此其占用的系统资源相对其他两种模块而言较多。不过 mpm_prefork 模块的优点在于它的每个子进程都会独立处理对应的单个请求,这样,如果其中一个请求出现问题就不会影响到其他请求。Prefork 在效率上要比 Worker 要高,但是内存使用大得多不擅长处理高并发的场景。
Worker 模式 (多线程多进程):和 prefork 模式相比,worker 使用了多进程和多线程的混合模式,worker 模式也同样会先预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。线程比起进程会更轻量,因为线程是通过共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下会比 prefork 有更多可用的线程,表现会更优秀一些;另外,如果一个线程出现了问题也会导致同一进程下的线程出现问题,如果是多个线程出现问题,也只是影响 Apache 的一部分,而不是全部。总的来说,prefork 方式速度要稍高于 worker,然而它需要的 cpu 和 memory 资源也稍多于 woker。可以通过命令 httpd -M 或 httpd -l 可以查看 apache 当前的模块可以通过命令 httpd - V 查看是工作在哪种模式下
15
你使用过监控软件吗?说说其特点
使用 nagios 对服务器进行监控,其特点侧重于对检测项的状态监控,主要通过 nrpe 实现对远程主机的监控,但也可以通过 snmp 对设备(如路由器、交换机)进行监控,可实时实现手机短信、电子邮件、MSN、飞信报警。
使用 cacti 对服务器进行监控, 其特点侧重性能和流量监控并通过图表显示,主要通过 snmp 协议收集监测项数据,可实时实现手机短信、电子邮件、使用 zabbix 对服务器进行监控,zabbix 是完全开源的工具,整合了 cacti 和 nagios 等特性。
zabbix 可以对主机的性能监控、网络设备性能监控、数据库、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)支持分布式,能集中展示、管理分布式的监控点,扩展性强可以自己开发完善各类监控(根据相关接口编写程序实现),编写插件容易,可以自定义监控项,报警级别的设置。数据收集,支持 snmp(包括 trapping and polling),IPMI,JMX,SSH,TELNET;
扫描二维码,添加马哥个人微信,领取 kindle 大奖!