1.将 /usr/local/test 目录下的大于 100k 小于500k 的文件转移到/tmp(-size 可以连着写)
find /usr/local/test/ -size +100k -a -size -500k -exec mv -v {} /tmp/ ;
2. 请找出 /home 所有七天以前,以 .ok 结尾的文件
find /home/ -mtime +7 -a -name "*.ok"
3.系统安全加固应该怎么做?
0.1密码策略 并且经常修改密码 使用特殊字符和长度
权限,锁定系统中不必要的系统用户和组
锁定之前备份passwd shadow
1.1锁定系统中多余的账号 password -l password -u
1.2 设置系统口令策略 使用命令 #cat /etc/login.defs|grep PASS 查看密码
加固方法:vim /etc/login.defs
1.3 禁用root之外的超级用户
1.4 限制能够su 为root的用户
1.5 检查shadow中空口令账号
2.1 停止或禁用与承载业务无关的服务
3.1设置合理的初始文件权限 umask = 027
4.1网络访问控制
使用SSH进行管理
4.2 禁止root用户远程登录,使用普通用户登录su到root 用户
4.3 防止误使用ctrl+alt+del重启系统 vi /etc/inittab 注释掉
4.标准端口的范围是多少?
1~65535
(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
5.linux运维工程师应该具备哪些职业技能和品质?
1.技能,足够专业的知识面存储,凭借熟悉程度加相关文档配置服务,以便提高工作效率又防止漏配;整理排错过程,快速定位并且解决问题,谨慎(因为云计算工程师拥有很高的权利,防止给公司带来损失);
2.有责任心,
(1.要有网络基础。现在时互联网的时代,任何一个应用离开了网络什么都不是,这在linux中体现的尤为重要,由于Linux多用于服务器领悟,网络是最重要的介质。所以一个优秀的运维人员,网络技术是必须要掌握的。可以系统的看一看ccnp的知识,深入理解一下TCP/IP协议。
2.开发基础。对于Linux来说,如果你会编程,哪怕只会一种编程语言,那么也是非常好的。由于运维和开发是紧密关联的,如果一个运维人员不懂开发,没有开发人员的思想。那么他就不可能理解开发人员的想法。其次,Linux不像windows,其涉及到多方面的开发,比如shell脚本,python自动化运维,php、js等等 都是可以帮助运维人员更好的管理和操作linux的工具。
3.自学能力,理解能力,抗压能力。linux目前国内的应用越来越多,linux运维也不像以前那么的神秘,但相比window还是有一定的门槛。但相对的薪资水平也不是一个档次。由于Linux运维一直走在技术的前沿,那么自学能力一定是你拉开别人的利器。可以这么说,在这个知识开放的年代,什么样的能力都是浮云,唯有自学能力是一个人是否优秀的体现。)
6.grep 怎么同时过滤两个条件
grep -E "word1|word2|word3" file.txt
7.查找出最后创建时间是三天前后缀是*.log 的文件并且删除。
find -mtime +3 -a -name "*.log" |xargs rm -rf
8.查找出linux系统下以TXT结尾30天内没有修改的文件,大小大于20k,同时具有执行权限的文件,并备份到 /data 下
find / -name "*.txt" -mtime +30 -size +20k -perm 755 -type f -exec cp -rvf {} /data \;
9.每次开机在 /tmp下创建一个当天日期的目录
vim /etc/rc.d/rc.local
添加 mkdir -p(递归创建)/tmp/date +%F
保存退出
添加 /etc/rc.d/rc.local 的执行权限
10.删除 /logs 目录下七天前的日志
find /var/log -mtime +7 |xargs rm -rvf
11.磁盘空间满了,删除一部分NGINX日志后,磁盘空间仍然是满的,为什么?
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而删除的是nginx的log文件删除的时候文件应该正在被使用
解决方法
重启nginx服务,或者用>/opt/nginx/logs/nginx.log清空日志文件,而不是直接删除。
12.请用linux命令行实现查看 /var/log 目录下的文件数?(wc)
1.1统计当前目录下文件的数目
ls -l |grep "^-"|wc -l
1.2统计当前目录下目录的个数
ls -l |grep “^d”|wc -l
1.3 统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep “^d” |wc -l
13.cpu利用率高,cpu的负载一定高吗?
等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就导致负载过大,但cpu使用率低。
1。磁盘读写 请求过多就会导致大量I/O等待
- MySQL中存在没有索引的语句或存在死锁
- 外接硬盘故障,常见有挂在了NFS,但是NFS Server 故障
14.创建一个 1G 的文件(dd if )
dd if=/dev/zero of=/tmp/test bs=1M count=1024
此命令在/tmp/下建立一个名为test的1g的文件
在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘
此时创建的文件在文件系统中的显示大小为1000000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的
网友评论