欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

linux系统:运维常用命令详情

程序员文章站 2022-04-08 10:34:44
linux系统 系统 分区 压缩与解压 文件查找及传输 用户及权限 查看文件 vi编辑器 网络 nginx rpm yum 编译安装 mysql 常见for循环示例 es linux系统...

linux系统 系统 分区 压缩与解压 文件查找及传输 用户及权限 查看文件 vi编辑器 网络 nginx rpm yum 编译安装 mysql 常见for循环示例 es

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
分区
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/\/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