网传Linux运维面试题解答(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

题目转载自:http://2358205.blog.51cto.com/2348205/1687708

大部分都自己做的,部分参考了原帖博主的答案

 

1、LINUX系统软件安装和卸载的常见方法

①yum方式:

yum install   安装
yum remove 卸载(不推荐此种方式,会将待卸载的软件包一并卸载掉)

②rpm方式

rpm -i  安装
rpm -e 卸载(忽略依赖加上--nodeps)

③编译安装的卸载

cd命令进入编译后的软件目录,即安装时的目录,执行make uninstall命令即可;或者直接删除安装目录

 

2、Windows和LINUX常用的远程连接工具有那些

命令行远程连接:secureCRT 、putty、Xshell 等

图形远程连接:linux下Xmanager、VNC,Windows下的mstsc(远程桌面)等

3、如何修改LINUX的IP地址、网关和主机名

简单,略

 

4、编写脚本实现以下功能;
   每天早上5点开始做备份
   要备份的是/var/mylog里所有文件和目录可以压缩进行备份
   备份可以保存到别一台器上192、168、1、2 FTP帐号 aaa 密码 bbb
   要示每天的备份文件要带有当天的日期标记

cat /server/scripts/backup.sh

#!/bin/bash
mkdir /backup && cd /backup
tar zcf backup_$(date +%F).tar.gz /var/mylog
ftp -n << EOF
open 192.168.1.1
user aaa bbb
put backup_$(date +%F).tar.gz 
close 
bye
EOF

 添加定时任务

crontab -e

00 05 * * * /bin/bash /server/scripts/backup.sh &>/dev/null


5、IPTABLES相关命令

iptables -F                     //清除所有规则,不会处理默认的规则
iptables -X                     //删除用户自定义的链
iptables -Z                     //链的记数器清零
iptables -N                     //添加一个自定义的链
iptables -X                     //删除一个自定义的链
iptables -L -n                  //以数字格式打印所有规则
iptables -L -n --line-numbers   //以数字格式打印所有规则并显示行号 

iptables -A INPUT -p tcp --dport 80 -j DROP       //添加规则到指定链的结尾
iptables -I INPUT -p tcp --dport 80 -j DROP       //添加规则到指定链的开头 
iptables -I INPUT 2 -p tcp --dport 80 -j DROP     //添加规则到指定链的第二行
iptables -D INPUT -p tcp --dport 80 -j DROP       //删除指定链的指定规则
iptables -D INPUT 2                               //删除指定链的第二条规则
iptables -A INPUT -s 10.0.0.104 -j DROP           //根据源地址封禁
iptables -I INPUT -p icmp --icmp-type 8 -j DROP   //禁PING包
iptables -I INPUT -p icmp -j DROP                 //禁所有ICMP协议
iptables -A INPUT ! -p tcp -j ACCEPT              //匹配指定协议外的所有协议 
iptables -A INPUT -s 10.0.0.14 -j ACCEPT          //匹配主机源IP
iptables -A INPUT ! -s 10.0.0.14 -j DROP          //匹配主机源IP
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT        //匹配网段
iptables -A INPUT -p udp --dport 53               //匹配单一端口

 

6、mysql相关的题
  新安装MYSQL后怎样提升MYSQL的安全级别

答:

一、

删除test数据库:drop database test;
删除不用的用户:drop user 'root'@'::1'; 
                           drop user ''@'centos6-2';
                           drop user ''@'locaohost';
或全部删除,添加管理员:delete from mysql.user;
grant all privileges on *.* to system@'localhost' identified by '123456' with grant option;  
二、 对用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址,root限制为只允许本地登陆)
三、开启二进制查询日志和慢查询日志
四、mysql安装目录及数据目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限

五、修改mysql默认端口,linux下可以通过iptables来限制访问mysql端口的IP地址

 
MYSQL的主从原理,怎么配置文件

主从同步简单原理:

主库开启记录binlog日志(增删改记录),从库通过IO线程与主库通信获取binlog,然后调用SQL线程写到自己的数据库

配置步骤

1、配置master的my.cnf
[mysqld]
log-bin = mysql-bin
server-id = 1   
开启mysqlbinlog并保证master和slave的server-id不一样,slave的log-bin可开可不开,当slave需要做其他slave的master时,也就是级联时,需要开启log-bin,并同时增加log-slave-updates参数
检测master开启log-bin是否成功mysql -uroot -p123456 -e "show variables like 'log_bin'"

2、在master上添加slave的连接用户
grant replication slave on *.* to 'rep'@'10.10.13.%' identified by "111";

3、备份master的数据,在slave上导入
[root@master tmp]#mysqldump -uroot -p123456 -A -B --master-data=1 --single-transaction --events | gzip > /tmp/all.sql.gz
[root@slave /]#scp 10.10.13.91:/tmp/all.sql.gz /tmp
[root@slave /]#gzip -d /tmp/all.sql.gz
[root@slave /]#mysql -uroot -p123456  -S /mysql/3308/mysql.sock < /tmp/all.sql

4、启动slave
配置slave的my.cnf
[mysqld]
replicate_wild_ignore_table=mysql.%       #不同步mysql库
重启slave数据库服务
注意,不要在master上配置binlog-do-db, binlog-ignore-db, replicate-do-db, replicate-ignore-db这四个参数,因为他们并非想象中可靠,参考
http://yujia2016.blog.51cto.com/59379/1783686

登陆slave:mysql -uroot -p123456 -S /mysql/3308/mysql.sock 
CHANGE MASTER TO
MASTER_HOST='10.10.13.91',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='111',

start slave;           启动slave
show slave status\G    看到Slave_IO_Running: Yes和Slave_SQL_Running: Yes,表示主从同步配置成功

 

 为MYSQL添加一个用户

语法:GRANT <权限> ON <库>.<表> TO '用户'@'主机名' identified by "密码";
  
  
7、WINDOWNS相关的问题
  你是否对WINDOWNS系统打过补丁,如果有100台你会怎么做

如果都加域的话  使用域控制器分发补丁即可, 如果公司没有域环境的话,可以安装360企业版,每台客户端都安装360企业版客户端,使用360企业版控制中心分发补丁

 

8、显示/test目录下的所有目录

答:

ls -ld /test/*

 

9、将文件/etc/a 下中除了 b文件外的所有文件压缩打包放到/home/a下,名字为a.gz

tar zcf /home/a/a.gz  /etc/a/* --exclued=b

 

10、一个脚本赋予执行权限的命令及选项
chmod +x  *.sh


4、umask 022代表什么意思

代表创建文件的初始权限为644   创建目录的初始权限为755

 

5、如何查看某进程所打开的所有文件
lsof -p 进程PID
 

6、获取eth0网卡上80端口的数据包信息

 tcpdump -i eth0 port 80


7、删除 /a/b下的所有文件及目录
rm -rf /a/b/*


8、常用的网络管理工具(5种以上)
ifconfig  netstat ss  iftop ntop ping  traceroute  nslookup dig telnet等

 

9、ftp、https、smtp、pops、ssh的端口号

ftp主动模式   传输数据20  交互21

ftp被动模式   传输数据端口随机  交互21

https 443
smtp  25
pops  110
ssh    22

 

10、如何在windows server 2003/2008上开启支持内存3-4G
在我的电脑上单击鼠标右键,选择属性,点击“高级”标签,点击【启动和故障恢复】下的“设置”按钮,点击“编辑”按钮,将Boot.ini文件的最后一行后面添加一个开关 “/PAE”(不带引号),保存后重新启动机器即可    顺便说一句2008有64位的系统····不需要安装32位


11、请用iptables控制来自192.168.1.2主机的80端口请求

iptables -A INPUT -s 192.168.1.2 -p tcp --dport 80 -j ACCEPT


12、请用shell脚本创建一个组class、一组用户,用户名为stdX X从01-30,并归属class组

#!/bin/bash
groupadd class
for i in `seq -w 30`
do
   useradd std$i -g class
done

 
13、在mysql客户端查询工具中,如何获取当前的所有连接进程信息

show full processlist\G


14、如何删除已满的数据库日志信息

在my.cnf中的[mysqld]段下面加入:expire-logs-days=7(设置自动清除7天前的logs),重启mysql;
或者登录,mysql,执行:purge binary logs to 'mysql-bin.000003';          #删除bin-log(删除mysql-bin.000003之前的而没有包含mysql-bin.000003)
如果是mysql主从环境的,删除日志,语句格式如下:  
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’

 


本文转自 kuSorZ 51CTO博客,原文链接:http://blog.51cto.com/kusorz/1839571


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
运维 监控 网络协议
|
1月前
|
存储 运维 搜索推荐
|
25天前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
32 1
|
1月前
|
运维 网络协议 安全
Linux安全运维--一篇文章全部搞懂iptables
Linux安全运维--一篇文章全部搞懂iptables
37 1
|
26天前
|
Web App开发 运维 安全
1Panel:一个现代化、开源的 Linux 服务器运维管理面板
1Panel:一个现代化、开源的 Linux 服务器运维管理面板
|
2月前
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!
|
3月前
|
存储 运维 监控
运维.Linux下执行定时任务(中:Cron的常用替代方案)
本文是关于Linux下执行定时任务系列的第二部分,主要探讨除了Cron之外的常用替代方案。介绍了Systemd Timers、Anacron及at命令三种工具,它们分别适用于不同场景下的定时任务需求。文章详细分析了每种工具的特点、工作原理、基本使用方法及其高级功能,并对比了它们各自的优缺点,帮助读者根据实际情况选择最适合的定时任务解决方案。此外,还提供了指向具体实例和进一步阅读材料的链接。
118 4
运维.Linux下执行定时任务(中:Cron的常用替代方案)
|
3月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
126 3
|
2月前
|
消息中间件 运维 Linux
linux之centos运维kafka
linux之centos运维kafka