linux日常运维命令

  1. 修改系统时间

[[email protected] ~]# date -s "2012-11-16 10:16:00"

[[email protected] ~]# clock -w

2.查看系统的内核

[[email protected] ~]#  uname–a

3.查看linux服务器物理CPU的个数

[[email protected] ~]# cat /proc/cpuinfo | grep "physicalid" | sort | uniq  | wc –l

4.查看linux服务器逻辑CPU的个数

[[email protected] ~]# cat /proc/cpuinfo | grep"processor " | wc –l

5.查看linux服务器的内存使用

[[email protected] ~]# free –m

已用内存:used-buffers-cached

可用内存:free+buffers+cached

6.查看服务器硬盘使用情况

[[email protected] ~]#  fdisk–l

7.查看文件系统的磁盘空间占用情况

[[email protected]~]#  df –h

8.查看服务器IO使用情况,,(使用下面命令要先安装软件包yum –y install sysstat)

[[email protected] ~]#  iostat

Iostat–d –x –k 1(持续查看IO使用)

如果%util接近100%说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

如果idble小于70%,I/O的压力就比较大,说明读取进程中有较多的等待,还可以结合vmstat查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高于30%时I/O的压力就比较高了)。

9.查看目录的大小

[[email protected] ~]#  du  -sh /root

10.Dd命令的使用,在进行维护系统时也经常用到

*制作交换文件的时候

Dd  if=/dev/zero of=/swapfile  bs=1024 count=65536

*制作驱动盘的时候

Dd  if=rhel40.img  of=/dev/fd0  bs=10k

制作ISO镜像的时候

Dd  if=/dev/cdrom of=/root/cd1 .iso

12.查看系统负载情况

[[email protected] ~]#  uptime  或者 top

在使用top时,如果r经常大于3或4,且id经常小于50,则标示CPU的负荷很重

如果每个cpu当前的活动进程数大于5,则标示系统性能问题严重。

13.使用vmstat命令查看linux系统的整体性能(进程、内存、虚拟内存、磁盘IO、CPU等)

[[email protected] ~]#  vmstat

14.查看系统是23位的还是64位的

[[email protected] ~]# ls -lF / | grep /$

*或者用命令#  file /sbin/init

查看输出结果是否有/lib64的目录,有则说明系统是64位的,没有说明是32位的。

15.查看系统安装的模块

[[email protected] ~]# lsmod

16.查看服务器PCI设置(如:网卡、声卡、显卡等详细信息)

[[email protected] ~]# lspci

17.查看和设置用户密码策略

[[email protected] ~]# vim /etc/login.defs

*强制密码长度

[[email protected] ~]# vim /etc/pam.d/system-auth

password   requisite     pam_cracklib.sotry_first_pass retry=3 minlen=12

18.设置登录超时自动退出终端

[[email protected] ~]# vim /etc/profie

exportTMOUT=600

19.设置禁止root用户和空密码用户远程登录系统

[[email protected] ~]# vim /etc/ssh/sshd_config

PermitRootLogin   no

PermitEmptyPasswords  no

如果拒绝某个用户远程登录系统则:(不能使用deny和allow)

DenyUsers zhangfeng  zhangxiao

-允许用户zhang远程登录系统,允许用户wang在某个主机登录,其它用户不允许。

AllowUsers zhang  [email protected]

限制登录失 败后的重试次数   MaxAuthTries 3

设置完后SSH:使用命令是设置的生效:# /etc/init.d/sshd reload

20.系统日志管理

[[email protected] ~]# vim /etc/syslog.conf   (定义日志类型,输出路径)

[[email protected] ~]# vim /var/log/secure(查看系统登录安全日志:SSH/POP3/telnet、ftp等)

[[email protected] ~]# last       (产看登录用户的信息)

[[email protected] ~]# lastlog     (查看所有用户登录的时间)

21.设置用户在系统的权限;如只让用户使用ifconfig命令。

[[email protected] ~]# visudo  (编辑sudo文件)

Zhang   localhost=/sbin/ifconfig

定义别名格式如下:

User_Alias  MING=zhang,wang,xiao    (别名必须大写,这是定义一个用户组)

Host_Alias  ZHU=smtp,pop

Cmnd_Alias  MING=/bin/rpm , /usr/bin/yum (定义一组命令集合)

进行调用:

Cmnd_Alias  MING=/bin/rpm ,/usr/bin/yum

Zhang  localhost=MING

启用sudo后,进行日志设置

[[email protected] ~]# visudo

Default  logfile = “/var/log/sudo”

[[email protected] ~]# vim /etc/syslog.conf

Local12.debug      /var/log/sudo

[[email protected] ~]# /etc/init.d/syslog  restart

[[email protected] ~]# sudo –l (查看当前用户被授权的sudo命令)

22.锁定密码文件,运行增加和删除;

[[email protected] ~]# chattr  +i /etc/passwd

[[email protected]~]# chattr  -I  /etc/passwd(取消i权限)

23.禁止用户执行控制台命令(poweroff、halt、reboot、eject)

在目录/etc/security/console.apps/下有以上命令,将其打包并移除到别的目录或者删除。

24.禁止用户执行Ctrl+Alt+Del热键重启命令

[[email protected] ~]# vim /etc/inittab

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

[[email protected] ~]# init q (使用此命令使之生效)

25.在grub之前设置密码,使用户在进入grub前输入密码

①  [[email protected] ~]#grub-md5-crypt  (设置MD5加密密码)

②  [[email protected] ~]# vim/boot/grub/grub.conf (在title 前加入password   --MD5   )

26 限制用户登录的tty终端

[[email protected] ~]# vim /etc/inittab   (在tty终端前加#号,注释掉就可以)

27.禁止root用户登录的终端

[[email protected] ~]# vim /etc/securetty (加#号注释)

28.禁止除root外的用户从tty1终端登录系统

①  [[email protected] ~]# vim/etc/pam.d/login

Account required  pam_access.so  (增加此认证)

②  [[email protected] ~]# vim /etc/security/access.conf

-:ALL EXCEPT root:tty1 (去掉#号)

- : root :192.168.12.0/24  172.16.0.0/8(禁止root用户从这两个网段远程登录)

29. 防火墙规则表

Filter表:主要是对数据包进行过滤

Nat表:主要用于修改数据包的IP地址、端口号等。

Mangle表:此表应用并不广泛。

Raw表:主要用于决定数据包是否被状态跟踪机制处理,在匹配时raw表优先于其它表。

Iptables  -A(在末尾追加一条规则)

-D(删除指定链中的某条规则,按序号或内容)

-I(在指定的链中插入一条规则,没有指定位置,在开头插入)

-L (显示防火墙规则)

-F (清除指定连中所有规则,没有指定则清楚表中所有链的规则)

-X(清除用户自定义的规则链)

-P (设置默认的策略)

30.Linux系统SNAT(只能用在nat表的POSTROUTING链)和DNAT(只能用在nat表的prerouting和output 链)策略使用

* iptables  -t nat  -A  POSTROUTING –s  192.168.1.0/24  -o etho  -j  SNAT --to-source  200.100.100.1   (有固定公网IP使用此策略)

* iptables  -t  nat -A  POSTROUTING  –s 192.168.1.0/24  -o ppp0  -j MASQUERADE (使用动态公网IP时使用次策略)

*  Iptables -t  nat  -A PREROUTING  -I  eth0 -d  200.100.100.1  -p  tcp  --dport 80  -j  DNAT  --to-destination  192.68.12.1 (首先要开启路由转发功能,在使用DNAT策略)

31. 代理服务器squid

配置文件:/etc/squid/squid.conf

http_port  3128 (这是squid的默认端口号)

cache_mem  64MB  (用于设置缓存的内存空间大小)

maximum_object_size  4096 KB (允许保存的缓存的最大对象大小)

reply_body_max_size  1024 allow all (允许用户下载的最大文件大小)

access_log  (用于指定日志文件的保存位置)

visible_hostname(用于设置代理服务器可用的完整主机名)

[[email protected]~]# squid  -z  (初始化缓存目录)

[[email protected]~]# squid  -k reconfigure  (重新加载配置文件)

脚本基础:

  1. Sed的基础用法

Sed的格式如下:

Sed 【-nefr】【n1,n2】 action

其中:

-n :是安静模式,只有经过sed处理过的行才显示出来,其它的不显示。

-e :默认选项,表示直接在命令行模式进行sed操作。

-f :将sed的操作写在一个文件里,如:-f  filename

-r :表示使sed支持扩展正则表达式。

N1,n2 :选择要进行处理的行。如10,20表示在10~20行之间处理。

a : 表示添加,后接字符串,添加到当前行的下一行。

c : 表示替换,后接字符串,用它替换n1,n2之间的行。

d : 表示删除字符模式的行,语法为sed ‘/regexp/d’ ,斜杠之间是正则表达式,模式在d前面,d后面一般不接任何内容。

i : 表示插入,后接字符串,添加到当前行的上一行。

P : 表示打印,打印某个选择的数据,通常与–n 一起使用。

S : 表示搜索,还可以替换,例如:1,20s/hao/zhang/g表示替换1~20行的hao为zhang。

实例如下:

①  显示password内容,将2~5行删除后显示

[[email protected] ~]# cat -n /etc/passwd | sed ‘2,5d‘

②  在文件第二行后面加上hello语句。

[[email protected] ~]# cat -n /etc/passwd | sed ‘2a hello‘

③  在文件第二行后面加上两行字,

[[email protected] ~]# cat -n /etc/passwd | sed ‘2a hello? \

zhangfneg ?‘

④  将2~5行的内容替换成“我是好人”

[[email protected] ~]# cat -n /etc/passwd  | sed ‘3,37c我是好人‘

⑤  只显示文件5~7行

[[email protected] ~]# cat -n /etc/passwd | sed -n ‘5,7p‘

利用此表达方式也可以很轻松的分析日志:

[[email protected] ~]# cat /var/log/secure | sed -n‘/12:12:50/,/12:13:50/p‘

⑥  只显示IP地址和子网掩码

⑦  [[email protected] ~]# ifconfigeth0 | grep "inet addr" | awk -F: ‘{print $2,$4}‘|

> awk ‘{print $1,$3}‘

168.12.231 255.255.255.0

[[email protected] ~]#

⑧  修改文件中第3行中的while为root。

[[email protected] ~]#  sed  -i ‘3s/root/while/g‘ zhang.sh

2.Sort在linux中的用法

Sort  –b : 忽略前导空格

Sort  -f : 忽略大小写

Sort  -M : 按月排序

Sort  -n : 按数字排序

Sort  -r : 倒序排列

Sort  -o : 输入之文件

Sort  -u 文件名 :表示忽略重复,取单一

Sort  a.txt |uniq  -I 表示取消重复查看重复值有多少次。

例如:要查看服务器被多少IP访问过

[[email protected] ~]#sort /var/log/httpd/access-log | awk ‘{print $1}‘ | uniq –c

3.Grep 在linux中的用法

Grep  -a : 表示以文本文件方式搜索。

Grep  -c : 表示计算找到符合行的次数

Grep  -i : 忽略大小写。

Grep  -n : 表示输出行号。

Grep  -v : 表示反向选择。

正则表达式:

*修饰符:前一个字符出现零次或多次。

[ ] 通配符:任意单个字符在[]中

. 通配符:任意单个字符。

[ ^  ] 通配符:不在集合中的任意单个字符。

^  定位点:行首,或以什么开头。

$  定位点: 行尾。

[ n1-n2 ]:列出截取的范围:grep ‘[a-z]’a.txt

[:ulnum:]0-9,A-Z,a-z

[:digit:] 0-9

[:alpha:]A-Z,a-z

[:upper:] A-Z

[:lower:] a-z

[:punct:] 标点符号。

例如:搜索符合的单词的行。

[[email protected] ~]# grep  –n  ‘t[ae]st‘  zhang.txt

取出oo前面不是g的行

[[email protected] ~]# grep  -n  ‘[^g]oo‘ zhang.txt

查看文件开头不是以字母的行

[[email protected] ~]# grep  -n  ‘^[^a-zA-Z]‘ zhang.sh

查询以 . 结尾的文件行

[[email protected] ~]# grep  -n  ‘\.$‘  hao

扩展正则表达式egrep的使用:(grep只支持基础表达式,而egrep支持扩展,其实egrep是grep  -E的别名)

+ :表示一个或多个重复字符。与.*作用类似

? :表示0个或一个字符。与.*作用类似

| :表示或的关系。比如’gd|good|dog’表示有gd和good和dog的字符串。

例如:查找文件,去除空白行和行首#的行

[[email protected]~]# egrep -v ‘^$|^#‘ hao

例如:-exec ok的用法

查找文件并显示文件的属性

[[email protected] ~]# find  /root/  -name  zhang.sh -exec  ls  -ld  {}  \;

4.Find的常用参数

-name :按照文件名查找

-perm :按照文件的权限查找文件。如:-777

-type : 按照类型查找:d目录;c字符设备文件;p管道文件;f普通文件;l符号链接文件

-user: 按照文件属主查找。

-group:按照文件属组查找文件。

-mtime –n +n :按照文件的更改时间查找文件。

-nouser和-nogroup:表示查找无效属组和属主的文件。

Xargs参数的用法和exec差不多。

如:查看当前目录下文件权限是777的文件并同时将所有人执行的权限收回。

[[email protected]~]# find  /  -perm  -777 -print  |  xargs chmod  o-x

5.脚本常用变量

Read也可以设置变量如:

#read  zhangfeng

Ni shi ge hao xuesheng!

#echo $zhangfneg

$# :表示命令行中位置参数的数量。

$* :表示所有位置参数的内容。

$? :表示命令执行后返回的状态。返回值为0为正确。非0 表示命令执行错误。

$$ :表示当前的进程号

$! :表示后台运行的最后一个进程的进程号。

$0 :表示当前执行的进程的进程名。

数值比较:

-eq :等于

-ne :不等于

-gt :大于

-lt  :小于

-le  :小于或等于

-ge :大于或等于

逻辑测试:

&& :逻辑与

|| :逻辑或

! :逻辑否

  1. 脚本结构

①  :单分支的if语句

If

Then

fi

②  :双分支的if语句

If

Then

Else

fi

③  :多分支的if语句

If

Then

Elif

Then

Else

fi

④  :for循环语句

For

Do

done

⑤  :while语句循环

While

Do

done

⑥  :case语句

Case  变量值  in

模式1)

命令;;

模式2)

命令;;

*)

默认命令   esac

时间: 2024-11-05 12:58:57

linux日常运维命令的相关文章

kafka知识体系-日常运维命令

本文主要讲解kafka日常运维的命令,包括topic管理.性能测试脚本. kafka版本0.10.0,安装步骤见大数据平台搭建-kafka集群的搭建 常用脚本 如下所有的命令均基于KAFKA_HOME=/wls/oracle/kafka ,服务器列表如下: 10.20.112.59 10.20.112.64 10.20.112.65 10.20.116.129 10.20.116.175 创建topic /wls/oracle/kafka/bin/kafka-topics.sh --zookee

linux 基础运维命令

Linux运维日常命令操作 1.linux启动过程 开启电源 --> BIOS开机自检 --> 引导程序lilo或grub --> 内核的引导(kernel boot)--> 执行init(rc.sysinit.rc)--> mingetty(建立终端) --> shell 2.网卡绑定多IP ifconfig eth0:1 192.168.1.99 netmask 255.255.255.0 3.设置DNS.网关 echo "nameserver 202.1

Lync2013日常运维命令整理(十)

近部署完成了Lync 服务器,即将转向运维阶段,运维过程中会涉及到为员工启用Lync帐号.语音功能以及导出统计当前哪些用户开启Lync权限,在这里我简单汇总一些常用的,供大家参考,后期我还会将用到的命令出来供大家平时运维使用. 1.强制刷新更新状态 Invoke-CSManagementStoreReplication 2.检查更新状态 Get-CsManagementStoreReplicationStatus 3.为禁用的账户开启Lync功能 Enable-CsUser 4.为某个部门开启l

linux日常运维基础命令

查看系统负载情况 1.w    (使用w命令查看负载情况) 查看load average 行查看1分钟负载情况 5分钟负载情况 15分钟负载情况,如果数值超过CPU核数,则说明现在CPU使用过程中有排队现象,核数不够 2.uptime    (查看当前系统负载情况) 同w命令 vmstat    (查看) 使用方法: vmstat 1 5    (每隔一秒显示linux的负载状态,一共显示5次) r:一秒内平均进程 b:有多少任务被磁盘IO,网络阻塞 swpd:有多少数据量被交换,如果swpd值

AIX—日常运维命令总结

查看系统IP地址: netstat  -in 1. 查看AIX服务器的物理构造信息,包括服务器网络配置信息 #  prtconf #  ifconfig   -a #  lsattr  -E  -l  mem0     :查看系统内存大小 #  netstat  -in             :显示系统各网卡的配置信息 2. 开启和关闭AIX服务器 #  shutdown  -F  :快速关机 #  shutdown  -I :采用交互式模式关闭系统 #  shutdown  -K :避免关闭

Linux日常运维小结

1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 物理cpu个数:cat /proc/cpuinfo |grep -c 'physical id'CPU一共有多少核:grep -c processor /proc/cpuinfo将CPU的总核数除以物理CPU的个数,得到每颗CPU的核数. 2. 查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢?两个命令分别是 w 和 uptime这三个系统负载值分别表示在1分钟.5分钟和15分钟内平均有多少个任务处于活动状态.

linux日常运维管理

1.查看系统负载命令 w命令:主要查看cpu负载 load average:一分钟内负载 五分钟内负载 十五分钟内负载 负载跟cpu核心数有关,查看cpu核心数: # cat /proc/cpuinfo | grep 'processor' | wc -l uptime也可以显示cpu负载 2.vmstat命令 # vmstat 1 5 1代表每一秒显示一次,5代表显示五次 r列:表示一秒内运行的进程 b列:被阻塞的进程 swpd列:有多少数据被交换,单位是kb free列:剩余内存 buff列

linux 基础运维命令2

1.查找当前目录下所有以.tar结尾的文件然后移动到指定目录: find . -name "*.tar" -exec mv {} ./backup/ ; 注解:find –name 主要用于查找某个文件名字,-exec .xargs可以用来承接前面的结果,然后将要执行的动作,一般跟find在一起用的很多,find使用我们可以延伸-mtime查找修改时间.-type是指定对象类型(常见包括f代表文件.d代表目录),-size 指定大小,例如经常用到的:查找当前目录30天以前大于100M的

linux日常运维(crond,systemd,chkconfing,unit,target)

1.任务计划:crond [[email protected] ~]# cat /etc/crontab                             (crontab配置文件) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin                                 (命令的路径) MAILTO=root                                               (发送邮件给