运维常用工具命令/知识总结

目录

一、linux进程常用命令

1、top、chkconfig、ps

2、systemctl(centos 7版本命令)

3、firewalld命令(详解已更新)

二、linux磁盘常用命令

1、df、du、free、fdisk、blkid、mount...

三、日志

1、linux日志文件

2、Linux日志分析常用基本工具命令(less/more/tail/head)

四、用户密码

1、chage 查看用户密码是否过期

2、与用户相关的配置文件

3、用户分类

4、用户登录出现问题如何处理

5、查询用户的操作(last、history)

五、常用服务端口

六、跟网络有关的命令工具

1、不同系统重启网络服务命令

2、ping、netstat、traceroute、telnet、tcpdump(抓包)、curl、tracepath

3、跳板机无法远程连接虚机排错方法

七、其他

1、crontab、date

2、客户端同步ntp服务器时间

未完待续~



一、linux进程常用命令

1、top、chkconfig、ps

  • top

查看cpu负载、正在运行的进程信息、内存使用信息

  • chkconfig

用于设定系统的各种服务,例如设置crontab服务开机自启:chkconfig –level 35 crond on

  • ps

命令默认情况下,只会显示运行在当前控制台下的属于当前用户的进程

ps命令的常用参数有:

  • -e,-A 显示所有进程
  • -f 显示完整格式的输出
  • -l 显示长列表
  • -a,所有进程,加上-x参数会显示没有控制终端的进程
  • -u username,显示指定用户的进程,例如ps -u ltc
  • -aux 按照CPU或者内存用量来筛选进程,例如ps -aux --sort -pcpups -aux --sort -pmem
  • -C cmdlist,显示包含在cmdlist列表中的进程,例如ps -C test
  • -L 显示进程中的线程,例如ps -L 123,123为进程ID
  • -j 显示任务信息
  • -H 用层级显示进程,树状结构

2、systemctl(centos 7版本命令)

systemctl是centos7版本的命令,类似于之前版本的services,用于启动/关闭服务、查询服务状态等

systemctl start/stop/restart firewalld 更改防火墙的状态

systemctl list-unit-files     查询所有系统服务

3、firewalld(centos 7防火墙命令)

firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。

firewalld跟iptables比起来至少有两大好处:

firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。 
firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。 
firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。

 etc/sysconfig/firewalld  防火墙配置文件 

防火墙命令:

# 安装firewalld
yum install firewalld firewall-config


systemctl start  firewalld # 启动
systemctl status firewalld # 或者 firewall-cmd --state 查看状态
systemctl disable firewalld # 停止
systemctl stop firewalld  # 禁用

# 关闭服务的方法
# 你也可以关闭目前还不熟悉的FirewallD防火墙,而使用iptables,命令如下:

systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables

 配置firewalld

firewall-cmd --version  # 查看版本
firewall-cmd --help     # 查看帮助

# 查看设置:
firewall-cmd --state  # 显示状态
firewall-cmd --get-active-zones  # 查看区域信息
firewall-cmd --get-zone-of-interface=eth0  # 查看指定接口所属区域
firewall-cmd --panic-on  # 拒绝所有包
firewall-cmd --panic-off  # 取消拒绝状态
firewall-cmd --query-panic  # 查看是否拒绝

firewall-cmd --reload # 更新防火墙规则
firewall-cmd --complete-reload
# 两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务


# 将接口添加到区域,默认接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 永久生效再加上 --permanent 然后reload防火墙

# 设置默认接口区域,立即生效无需重启
firewall-cmd --set-default-zone=public

# 查看所有打开的端口:
firewall-cmd --zone=dmz --list-ports

# 加入一个端口到区域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 若要永久生效方法同上

# 打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档
firewall-cmd --zone=work --add-service=smtp

# 移除服务
firewall-cmd --zone=work --remove-service=smtp

# 显示支持的区域列表
firewall-cmd --get-zones

# 设置为家庭区域
firewall-cmd --set-default-zone=home

# 查看当前区域
firewall-cmd --get-active-zones

# 设置当前区域的接口
firewall-cmd --get-zone-of-interface=enp03s

# 显示所有公共区域(public)
firewall-cmd --zone=public --list-all

# 临时修改网络接口(enp0s3)为内部区域(internal)
firewall-cmd --zone=internal --change-interface=enp03s

# 永久修改网络接口enp03s为内部区域(internal)
firewall-cmd --permanent --zone=internal --change-interface=enp03s

 服务管理

 显示服务列表  
Amanda, FTP, Samba和TFTP等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看:

firewall-cmd --get-services

# 允许SSH服务通过
firewall-cmd --enable service=ssh

# 禁止SSH服务通过
firewall-cmd --disable service=ssh

# 打开TCP的8080端口
firewall-cmd --enable ports=8080/tcp

# 临时允许Samba服务通过600秒
firewall-cmd --enable service=samba --timeout=600

# 显示当前服务
firewall-cmd --list-services

# 添加HTTP服务到内部区域(internal)
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload     # 在不改变状态的条件下重新加载防火墙

 端口管理

# 打开443/TCP端口
firewall-cmd --add-port=443/tcp

# 永久打开3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp

# 永久打开端口好像需要reload一下,临时打开好像不用,如果用了reload临时打开的端口就失效了
# 其它服务也可能是这样的,这个没有测试
firewall-cmd --reload

# 查看防火墙,添加的端口也可以看到
firewall-cmd --list-all

直接模式

# FirewallD包括一种直接模式,使用它可以完成一些工作,例如打开TCP协议的9999端口

firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT
firewall-cmd --reload

控制端口 / 服务

          可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放 http 服务就是开放了 80 端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp 还是 udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。

firewall-cmd --add-service=mysql        # 开放mysql端口
firewall-cmd --remove-service=http      # 阻止http端口
firewall-cmd --list-services            # 查看开放的服务
firewall-cmd --add-port=3306/tcp        # 开放通过tcp访问3306
firewall-cmd --remove-port=80tcp        # 阻止通过tcp访问3306
firewall-cmd --add-port=233/udp         # 开放通过udp访问233
firewall-cmd --list-ports               # 查看开放的端口

伪装 IP

firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade   # 允许防火墙伪装IP
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

端口转发

          端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定 ip 的话就默认为本机,如果指定了 ip 却没指定端口,则默认使用来源端口。 如果配置好端口转发之后不能用,可以检查下面两个问题:

  1. 比如我将 80 端口转发至 8080 端口,首先检查本地的 80 端口和目标的 8080 端口是否开放监听了
  2. 其次检查是否允许伪装 IP,没允许的话要开启伪装 IP
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080   # 将80端口的流量转发至8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口
  1. 当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
  2. 端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。

 

二、linux磁盘常用命令

1、df、du、free、fdisk、blkid、mount...

  • df

显示磁盘分区可用磁盘空间,常用参数有:-h(以kb以上格式显示数字)、-a(显示全部)

  • du

查看文件或目录的磁盘使用空间:

  • free

查看系统内存和swap分区使用情况:-b,-k,-m,-g参数表示数据以什么单位显示

  • fdisk

命令给磁盘分区,查询磁盘分区情况,常用参数-l(列出所有分区信息),分区内置参数:n(新建分区)、p(显示硬盘所有分区)、t(转换分区格式)、w(保存分区并退出)

  • blkid

主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID进行查询

  • mount

主要用于文件系统挂载,常用参数有-o(异步模式、同步模式)、-t(要挂载的文件系统类型)

三、日志

1、linux日志文件

  • 存放日志文件目录:/var/log
  • /var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
  • /var/log/boot.log — 包含系统启动时的日志
  • /var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志
  • /var/log/daemon.log — 包含各种系统后台守护进程日志信息。
  • /var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
  • /var/log/lastlog — 记录所有用户的最近信息。
  • /var/log/user.log — 记录所有等级用户信息的日志。
  • /var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
  • /var/log/mail/ –  这个子目录包含邮件服务器的额外日志。

2、Linux日志分析常用基本工具命令(less/more/tail/head)

  • less/more 常用于日志文件阅读, less可上下翻页、more只能下翻页、Q退出阅读。
  • tail/head  常用于日志文件阅读,tail从文件末尾取几行显示、head从文件首取几行阅读,常用格式:cat /var/log/boot.log | tail -n 20 

四、用户密码

1、chage 查看用户密码是否过期

常用命令格式:chage -l root;

  • last password change 密码最后一次的修改日期
  • password expires 密码到期时间
  • password inactive 密码失效时间
  • account expires 账户到期时间

chage的参数包括 :
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 
-M 密码保持有效的最大天数。 
-W 用户密码到期前,提前收到警告信息的天数。 
-E 帐号到期的日期。过了这天,此帐号将不可用。 
-d 上一次更改的日期 
-i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

2、与用户相关的配置文件

[root@svn /]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root  594 Jul  3 14:01 /etc/group     #——>用户组的信息
---------- 1 root root  484 Jul  3 14:01 /etc/gshadow   #——>用户组的密码文件信息
-rw-r--r-- 1 root root 1091 Jul  3 13:56 /etc/passwd    #——>用户的信息

3、用户分类

①超级用户:root,UID为0

②普通用户:centos 7以前版本,UID是500-65535的用户,centos7中UID是1000-65535的用户

③虚拟用户:centos 7以前版本,UID在1-499的用户,centos7中UID在1-999,一般不能登录,满足文件或服务启动的需要,/sbin/nologin

4、用户登录出现问题如何处理

[root@svn ~]# su - oldboy
-bash-4.1$ 
-bash-4.1$ 
解答:原因是这个oldboy用户家目录下的环境变量文件被删除了,只需到/etc/skell/目录下,复制
.bash_profile
.bashrc到当前用户下,然后重新登录oldboy用户即可

5、查询用户的操作(last、history)

liinux系统中last查询用户登录历史、history查询用户使用过的操作命令

Windows 从任务管理器中查看用户再登情况

五、常用服务端口

  • ssh--22
  • 1521--oracle
  • 443--https
  • 80--http

六、跟网络有关的命令工具

1、不同系统重启网络服务命令

  • 红帽:/etc/rc.d/init.d/network restart
  • centos 6:service network restart
  • centos 7:systemctl restart network
  • windows08:service network restart
  • ubuntu:service network-manager restart

2、ping、netstat、traceroute、telnet、tcpdump(抓包)

  • ping 常用参数

 -l   定义发送数据包的大小,默认情况下是32字节,利用它可以最大定义到65500字节 

-n  定义向目标地址发送数据包的次数

-t   表示不间断向目标地址发送数据包,直到我们强迫其停止

  • tcpdump是一个抓包工具命令,需要用yum安装后使用,

yum install tcpdump  安装

tcpdump -i ens33  抓取网卡ens33(centos 7中称ens33,centos6.5称eth0)包

  • telnet远程连接工具

常用格式:telnet +IP 或者 telnet + IP + 端口

例如:telnet 10.16.0.23                      telnet 10.16.0.23 1521(端口号)

 

  • traceroute路由跟踪 (centos 7无此命令,需要yum安装traceroute包:yum install traceroute)

如果用traceroute -q 4 www.58.com,表示向每个网关发送4个数据包。有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。

  • netstat 监听端口(centos 7无此命令,需要yum安装net-tools包)

常用命令格式:

netstat -nat 查看正在监听的端口状态

netstat -ntlp  查看udp协议端口和在此端口开启的进程

netstat -nulp  查看udp协议端口和在此端口开启的进程

netstat -a 查看所有端口

3、跳板机无法远程连接虚机排错方法

  • 查看远程连接端口有没有打开
  • 打开虚机的远程设置(若虚机为window08)
  • 查看虚机的防火墙设置
  • 虚机ping跳板机看通不通,不通的话排查网卡
  • 虚机尝试用telnet命令远程连接跳板机(若虚机为Linux)

七、其他

1、crontab、date

  • crontab 

crontab周期性任务,常用参数:

-e:编辑某个用户的crontab文件内容。

-l:显示某个用户的crontab文件内容,

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

格式如下:* * * * * +命令,前五个字段代表的意思是 分、时、日、月、周

与crontab相关的文件:

/etc/cron.deny  不允许使用crontab服务的用户名单

/etc/cron.allow  允许使用crontab服务的用户名单

/var/spool/cron 存放crontab文件的目录,以用户命名

~注,有些系统默认没有crontab服务,此时需要用yum安装:yum install crontabs;  /sbin/service crond start //启动服务

  • date

date 查看本地时间

date -s 18:09:01 临时更改本地时间

date -s 991128 设置时间为1999年11月28号     

date -s "2008-08-08 12:00:00" 设置时间伟2008年8月8号12:00

2、客户端同步ntp服务器时间

1、客户端必须有ntp服务,先用rpm -qa ntp*查询是否安装ntp服务

2、若系统没有该服务,则yum安装,yum install ntp

3、which ntpdate查询ntpdate服务位置

  

4、加入定时任务:crontab -e编辑周期性,任务命令格式 */5 * * * * /sbin/ntpdate +域名或IP(世界时间域名time.nist.gov、time.windows.com、也可以是公司自己ntp服务器的域名或IP),

  

5、检验是否时间是否能同步:先更改当前时间date -s +时间;一个任务周期后看时间是否同步ntp服务   

未完待续~

本篇防火墙部分博文转载地址 
https://blog.csdn.net/GMingZhou/article/details/78090963

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章