运维常用命令总结

linux系统

系统

su - 
cat /proc/cpuinfo                   查看配置
lscpu                               查看配置
cat /etc/redhat-release             查看系统版本信息(有时安装一些软件,可改)

df –Th                  查看磁盘使用情况(以T为单位)
du -h --max-depth=1     查看当前目录下各文件所占大小
du -sh                  当前目录总体大小
du -sh *                查看当前目录下各问价大小

mkfs.ext4 /dev/sdb1        格式化
done                    

mount /dev/sdb1 /opt/data1 挂载


lsof | grep delete      查看删除但还占空间的文件 可用kill -9 pid 清一下

free –m                 内存,m为单位,还可以是g,t
uptime                  运行时间及负载 查看load值
w                       用来查看登录者的信息及他们的行为(比who更详尽)
top                     性能分析工具

ss -s                   列出当前socket的详细信息
ss -tanl                列出所有tcp


若命令不能用:
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

清理系统缓存:to free pagecache, dentries and inodes

echo 3 > /proc/sys/vm/drop_caches
for i in {148..161}; do ssh 192.168.14.$i "echo 3 > /proc/sys/vm/drop_caches"; done
for i in {7..12}; do ssh 192.168.14.$i "echo 3 > /proc/sys/vm/drop_caches"; done
在crontab中,需要搞一个脚本,例如:
0 0 * * *       /etc/mission/clean_cache.sh         0时执行
* */3 * * *       /etc/mission/clean_cache.sh       每隔3小时执行一次
cat /var/log/cron   可以查看定时任务跑的情况

netstat -tulnp | grep 端口号  查看端口的情况
lsof -i:端口号                查看端口的情况(yum install lsof -y)
telnet ip 端口
区别:
[root@bgs-8p83-udp-04 ~]# netstat -tulnp|grep 9001
tcp        0      0 :::9001                     :::*                        LISTEN      79677/java     
[root@bgs-8p83-udp-04 ~]# lsof -i:9001
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    79677  udp  300u  IPv6 3473785      0t0  TCP *:etlservicemgr (LISTEN)


ps -aux | grep 数字(pid)或者程序名        列出符合条件的目前所有的正在内存当中的程序 
ps -ef | grep 数字(pid)或者程序名         显示符合条件的所有进程信息,连同命令行
kill –i     用好像启动进程的用户已注销的方式结束进程 
kill -9     强制干掉
ps -ef|grep elasticsearch|grep -v grep|awk '{print $2}'|xargs kill -9       指定干掉某个进程

软连接
ln -s /opt/python2.6 /usr/bin/python    创建
unlink /usr/bin/python                  解链
要改变链接指向,只需which 各个版本,然后将链接指向解链重指即可

history|grep 

ctrl+r (输入关键字,在ctrl+r)

cd ..   上一层
cd -    上一次


screen  -r   进程名  查看相关进程的屏幕

ctrl+a 再按d退出

创建随机密码-l 后面为位数(安装 yum -y install expect)
mkpasswd -l 9

测试带宽
npm install --global speed-test
speed-test              备注:带宽上行达不到,下行可达到

分区

parted(大于 2t) 分区
fdisk(小于 2t) 分区

创建或增减swap分区
[root@bgs-8p141-yangliang openldap]# free -m      #查看分区情况
             total       used       free     shared    buffers     cached
Mem:         32109      30925       1184          0        338      27735
-/+ buffers/cache:       2852      29257
Swap:            0          0          0
然后:
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
# dd if=/dev/zero of=/home/swap bs=1G count=17

2.格式化为交换分区文件:
# mkswap /home/swap #建立swap的文件系统

3.启用交换分区文件:
# swapon /home/swap #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/home/swap swap swap defaults 0 0

注意:若已执行过一次,需要扩大或者减少swap空间时要先关闭swap
swapoff -a

压缩与解压

(注:v显示过程信息,可去)

tar -zxvf 名字.tar.gz -C 目录   解压tar.gz文件
tar -zcvf 名字.tar.gz 文件      压缩为tar.gz
tar -jxvf 名字.tar.bz2          解压tar.bz2文件(解压报错,yum install bzip2 -y)
tar -jcvf 名字.tar.bz2 文件     压缩为tar.bz2文件
jar -xvf 名字.war               解压war包
jar -cvf 名字.war               压缩为war
unzip -o 名字.zip               解压zip文件,-o 会同名覆盖不询问
zip -r 名字.zip 文件            压缩为zip文件

文件查找及传输

cd ../目录
find / -name 文件名
grep -R "关键词" *
grep "关键词" *
which 文件名
whereis 文件名

scp -r 文件(或者目录/*) -P 端口号 用户@主机ip或映射:绝对路径或者类似$PWD的相对路径 (本机传向远端)
scp -r -P 端口号 用户@主机ip或映射:文件的绝对路径或者类似$PWD的相对路径 本机存放位置 (远端传至本机)
本机传向远端:
示例:scp -P3222 -r  dist a207@172.24.8.97:/opt/a207/web/test/
远端传至本机:(特别适合本机是跳板机的情况,舒服)
示例:scp -P3222 -r  a207@172.24.8.97:/opt/a207/web/test/dist .

rz -be   上传   若无,则 yum install lrzsz -y
sz -be   下载

wget 网址 (yum install wget -y)

lftp ftps://ftphzuser:zj2Kl5sDmH0=@117.121.7.29
mget lftp地址

用户及权限

chown 用户名:组名 文件名 -R

groupadd 组名 && useradd -g 组名 -d 用户家目录 用户名 (循环中可一起,单个要分开)
groupadd 组名
useradd -g 组名 -d 用户家目录
示例:groupadd ambari 
useradd -g ambari -d /opt/ambari ambari

userdel -r sys              清理用户及其家目录

查看文件

ll
ll -a
ls -rtl                 r相反顺序 t最后一次修改顺序,从前到后
ls -rtla

查看日志常用命令
tail -n 行数 日志       静态观察指定行数
tail -行数f 日志        动态查看前指定行数的日志
tail -f 日志            紧跟日志文末查看
less -R 日志            以less的方式查看,G在文末,gg到文首,pageup和down翻页,q退出 /搜索 n向前查找 N向后查找

tail -100 文件
head -100 文件
more
less
cat

md5sum 文件名           查看文件的md5值

vi编辑器

100000 dd   快速清空
G           跳到文末
gg          跳至开头
o           跳到下一行
$           跳至行末
yy 行数     从这行起复制行数的内容
p           粘贴复制的内容
/查找的名称 快速查找
:set nu     查看行数
:q/q!/wq    保存及退出
:%s/\<old\>/new/g   全局替换
set paste   执行后再粘贴可以保证粘贴格式

网络


ping -c 100 -i 0.01 ip或者网址
traceroute ip或者网址
tcpdump -i eth0 看网口

chattr chattr +i /etc/resolv.conf chattr命令防止系统中某个关键文件被修改
iostat -m -x 1 每一秒单位为M查看io性能

route -n                                        显示路由表
route add -net 172.16.4.0 gw 192.168.44.1       路由表中添加ip及网关
/etc/sysconfig/static-routes                    查看静态路由表

nginx

启动Nginx

常见的几种方式
/etc/init.d/nginx start                                             yum安装
service nginx start                                                 yum和rpm安装
/usr/local/nginx/sbin/nginx -c /opt/nginx-1.10.2/conf/nginx.conf    tar包编译安装

ps一下,可以知道相关配置文件的位置

rpm

rpm -qa|grep mysql
rpm -e --nodeps mysql-community-common-5.7.18-1.el7.x86_64

yum

yum install -y unzip zip
yum install -y lrzsz
yum install bzip2 -y
yum install vim -y

yum list
yum clean all
yum makecache

yum install
yum remove

yum list all | grep 

编译安装

./configure && make && make install 

mysql

建库
CREATE DATABASE {db-name} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

授权
GRANT ALL PRIVILEGES ON {db-name}.* TO '{db-user}'@'%' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON {db-name}.* TO '{db-user}'@'localhost' IDENTIFIED BY '{password}';

刷新
flush privileges;

改密
UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;

备份
mysqldump -u root -p  subject ab_permission_view_role > ab_permission_view_role.sql 

常见for循环示例

重启
for i in {113..122} ; do ssh 172.24.8.$i   "init 6" ; done;

ntp相关
for i in {12..24}; do scp CentOS-Base.repo 192.168.192.$i:$PWD ; done;
for i in {11..24}; do ssh 192.168.192.$i "yum install ntp -y"; done
for i in {12..24}; do ssh 192.168.192.$i "(echo '00 01 * * * ntpdate -u 172.24.2.10 >> /var/log/ntpdate.log 2>&1' ; crontab -l) | crontab" & done
for i in {11..24}; do ssh 192.168.192.$i "ln -sf  /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime";done
for i in {11..24}; do ssh 192.168.192.$i "service ntpd start"; done
for i in {11..24}; do ssh 192.168.192.$i "chkconfig ntpd on"; done
for i in {12..20};do ssh 192.168.192.$i "systemctl disable chronyd" ; done;

做跳板机
ssh-keygen -t rsa
for i in {7..12};do ssh-copy-id root@192.168.14.$i;done

scp
for i in {12..20}; do scp /etc/hosts 192.168.192.$i:/etc/hosts ; done;
for i in {12..20}; do scp /etc/hosts 192.168.192.$i:$PWD ; done;

ambari
for i in {12..20};do ssh 192.168.192.$i "ambari-agent start" ; done;

es

重试分配
curl -XPOST '192.168.14.148:9200/_cluster/reroute?retry_failed'
禁用自动分配
curl -XPUT 192.168.14.148:9200/_cluster/settings -d'{
  "transient": {
  "cluster.routing.allocation.enable": "none"
       }
   }'

启用自动分配
curl -XPUT 192.168.14.148:9200/_cluster/settings -d'{
     "transient": {
         "cluster.routing.allocation.enable": "all"
     }
 }'
sed -i 's/120s/300s/g' /opt/elasticsearch/config/elasticsearch.yml  注意g为全局替换,要保证其唯一性,不行就多加点

循环干掉es进程
for i in {148..161}; do ssh 192.168.14.$i "ps -ef|grep elasticsearch|grep -v grep|awk '{print $2}'|xargs kill -9"; done

启动
/opt/elasticsearch/bin/elasticsearch -d

猜你喜欢

转载自blog.csdn.net/lisong_ghost/article/details/78778341