centos7运维 centos7服务管理

   2023-02-09 学习力0
核心提示:# 查看访问的ip数据netstat -anpt|grep 8080|awk '{print $5}'|cut -d: -f1|sort|uniq -c#安装远程登录yum install sshsystemctl start sshdsystemctl status sshd#查看所使用的bashecho $SHELL查看系统语言echo $LANG修改系统字符集:vim /etc/locale.confLA

# 查看访问的ip数据

netstat -anpt|grep 8080|awk '{print $5}'|cut -d: -f1|sort|uniq -c

#安装远程登录
yum install ssh
systemctl start sshd
systemctl status sshd

#查看所使用的bash
echo $SHELL

查看系统语言
echo $LANG
修改系统字符集:
vim /etc/locale.conf
LANG=zh_CN.UTF-8

#查看当前用户
who is it/whoami/id -nu

#查看系统版本:
cat /etc/os-release
lsb_release -a
uname -a #可显示电脑以及操作系统的相关信息
cat /proc/version #说明正在运行的内核版本
cat /etc/issue #显示的是发行版本信息
cat /etc/os-release
rpm -qi centos-release

#查看cpu级别(操作系统位数)
arch

变量在export后 可以在后续的程序中用$来引用 如echo $PATH
变量拼接入path后可直接在控制台用(如tomcat启动)否则要写全($CATALINA_HOME/bin/startup.sh)

环境变量
全局环境变量设置:
不建议在 etc/profile中设置,在子目录/etc/profile.d下添加*.sh

安装netstat
yum -y install net-tools

systemd学习
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

系统命令:
systemctl reboot #重启
systemctl halte #关机
service配置文件命令路径必须是绝对路径,修改后要重新加载
systemctl daemon-reload
查看所有级别:
ls -lh /usr/lib/systemd/system/runlevel*.target
查看默认的运行级别:
systemctl get-default
修改当前运行级别:
systemctl set-default multi-user.target
# 查看 multi-user.target 包含的所有服务
$ systemctl list-dependencies multi-user.target
# 切换到另一个级别
$ sudo systemctl isolate multi-user.target

查看类型为service的单元
systemctl list-units --type=service(运行中的)
systemctl list-units -all --type=service(包含非运行中的)
#查看系统运行状态
systemctl status
#列出所有服务的层级和依赖关系,可以指定某个服务
systemctl list-dependencies tomcat.service
systemctl list-dependencies multi-user.target

#restart与try-restart区别

systemctl restart httpd.service #如服务在运行将重启,不在运行将会启动

systemctl try-restart httpd.servic  #只有服务在运行才重启

 

查看服务启动日志
systemctl status tomcat 或 journalctl -xe
查看单个服务日志
journalctl -f -u prometheus.service

查看journalctl日志占用磁盘的空间的总大小
journalctl --disk-usage
由于Linux是一个非常敏感的操作系统,若删除文件错误,很容易造成系统崩溃。
journalctl --vacuum-time=2d 删除比指定时间旧的文件
journalctl --vacuum-size=500M 保留大小

限制日志
修改配置文件
/etc/systemd/journald.conf

journalctl学习:
查看指定时间以后的日志
journalctl --since "2018-03-26" --until "2018-03-26 03:00"

清理日志
日志位置:
/var/log/journal

设置缓存history命令条数
修改/etc/profile
HISTSIZE=100
查看已缓存的命令:cat .bash_history

设置别名:
在~目录下, vim .bash_profile
alias ll="ls -al"
source .bash_profile

断开用户连接:
ps -ef|grep ssh
kill -9 (pts/0类似这样的进程)

#查看对外,对内连接数 (LISTEN表示启动的程序,ESTABLISHED表示外部访问)
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
或 netstat -ant|awk '/tcp/ {print $6}'|sort|uniq -c


yum源配置(云源为阿里云)
备份系统原来的repo文件
mv /etc/yum.repos.d/CentOs-Base.repo CentOs-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
or    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
云源缓存
yum clean all
yum makecache
yum update

查看系统可用的yum源和所有的yum源
yum repolist enabled
yum repolist all

yum upgrade和yum update
yum -y update
升级所有包同时也升级软件和系统内核
yum -y upgrade
只升级所有包,不升级软件和系统内核

安装软件
rpm -ivh kernel-devel-3.10.0-514.el7.x86_64.rpm
yum install kernel-devel

查看已安装详情
rpm -qa|grep mysql
rpm -ql mysql-community-server-5.6.37-2.el7.x86_64

卸载软件
rpm -e mysql-community-server-5.6.37-2.el7.x86_64
rpm -e mailx-12.5-19.el7.x86_64 --nodeps (卸载时不检测依赖,只卸载该包)
yum -y remove VirtualBox-5.2 (卸载不干净)

#查找which,whereis,locate,find
find / -name mysqld.service 在根目录下查找名字为mysqld.service的文件

#网络
systemctl status network
ifconfig不显示ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
将ONBOOT=no改为ONBOOT=yes
设置dns方式
编辑vi /etc/sysconfig/network-scripts 网卡下面的ifcfg-eth0 配置文件修改DNS1
终端输入 setup命令即可调出图形界面设置(配置信息会写入/etc/resolv.conf文件里面)
编辑 vi /etc/resolv.conf 设置首选DNS和次要DNS。排在前面的就是首选DNS,后面一行就是次要的DNS服务器DNS
解析域名顺序:
1 hosts文件 (/etc/hosts)---- 2 网卡配置文件DNS服务地址 ---3 /etc/resolv.conf

 

#磁盘操作
df -h #查看磁盘使用情况
df -Th #显示文件系统类型
fdisk -l #显示挂载和未挂载的分区
为了避免每次重启系统后都要手动mount,可以在/etc/fstab中加入一行挂载配置,即可开机自动挂载,该方法简单方便
cat /etc/fstab
dumpe2fs -h /dev/vda1(或 blkid /dev/vda1) #查看设备uuid
查看正在使用某个文件的进程id
fuser -um /dev/sda2
查看磁盘管理器
udevadm info -a -n /dev/vda
udevadm info --query=all --name=/dev/vda
udevadm info --query=all --name=/dev/vda1
查看挂载情况
mount


#打包操作(压缩和解压)
tar -czvf docker.tar.gz docker
tar -xzvf docker.tar.gz

zip -r docker.zip docker 递归压缩
unzip docker.zip
unzip -o docker.zip 覆盖文件没有提示

gzip cjh.txt 会生成cjh.txt.gz (不会归档)
gzip -d cjh.txt.gz

#执行sh
eval 执行一个命令
exec 在新进程中执行一个命令,并且终止当前进程
source 在当前进程中执行脚本

#vim编辑器使用技巧
:set number #显示行号
:u #撤消
:%s/1024/512/g #全局替换
删除一行
:dd

#centos间相互复制传送文件
scp -r -P 222 /root/docker root@sanjuscm.4plservice.com:/root/docker

#清空文件内容
>catalina.out/du -sh catalina.out

#防火墙设置
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
firewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=8080/tcp
删除
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
查看当前开了哪些端口
其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。
firewall-cmd --list-services
查看还有哪些服务可以打开
firewall-cmd --get-services
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=8080/tcp --permanent
增加端口后,要重新启动

#备份和还原目录
dump -0 -f ./cjh.dump ./cjh
restore -r -f ../cjh.dump


linux连接linux
ssh -i /root/xxx.pem root@10.10.10.100

#awk使用
ps -A | grep httpd | grep -v grep | awk '{ print $1; }' | xargs -L 1 kill -HUP

( ps 和 grep 命令用来在所有的进程中搜索 httpd(并且忽略用来搜索 httpd 进程的 grep 进程)

接下来,awk 只显示输出结果中的进程 ID,并将它传递给 xargs

然后,xargs 命令接受每个进程 ID(因为使用了 -L 1 以便一次提取一行内容),并使用 sudo kill -HUP 向相应的进程发送一个挂起信号。


#输出:
$cat test.txt 1>/dev/null 标准输出
$cat test.txt 2>/dev/null 标准错误输出

#sh脚本
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

变量的定义是有一定的规则的,比如变量和变量内容之间使用等号链接,且等号两边不能直接跟空格.
如果变量内容含有空格,可以使用单引号或者双引号括起来.
当然使用单引号和使用双引号是有区别的,
如果使用双引号,那么如果内容里面有特殊字符比如$LANG,那么将会被解析成对应的数据.
如果使用单引号,则不会解析.

echo -e '#!/bin/bash\necho $panda'>one.sh
解释一下上面的命令echo的e选项用于允许转义\标记的内容.
chmod u+x one.sh(给当前用户赋予)
chmod a+x one.sh(给所有用户赋予)
$()与${}的区别:
$()中放的是命令,相当于` `(在脚本文件中才有效)
${}中放的是变量

blocks=${1:-$MINBLOCKS}
相当于
if [ -n "$1" ]
then
blocks=$1
else
blocks=$MINBLOCKS
fi

#查看运行程序内存
ps aux|grep java (b为单位)

首先注意usr 指 Unix System Resource,而不是指User
通常/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变
/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件
如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为
echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin
这里/usr/local/bin优先于/usr/bin, 一般都是如此

 

查看当前目录某个文件最大
du -ah --max-depth=1

查看进程启动时间
ps -p 22264 -o lstart


查看最高占用cpu线程
ps -mp 11028 -o THREAD,tid,time
top -Hp 11028

线程转小写16进制
printf '%x\n' 11619
jstack 11028|grep 2d63 -A60


#编辑定时任务
crontab -e
00 02 * * * /bin/sh /opt/tomcat7/logs/clean.sh /opt/tomcat7/logs > /opt/tomcat7/logs/crond.log 2>&1
#查看定时任务
crontab -l

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 用Xshell设置CentOS密钥登录
    用Xshell设置CentOS密钥登录
    今天带来设置X shell 密钥登录  因为用的中文x shell 所以按照中文设置很简单1.点击工具(Tools)------新建用户密钥生成向导(New User key Wizard)(附图)2.然后出现下图时,记得密钥类型 选择RSA.其实选择DSA ,也能实现,二者其实是不同的算法。(我用的R
    03-08
  • centOS下安装Adobe Flash Player
    centOS下安装Adobe Flash Player
    centOS下安装Adobe Flash Player  2009-10-09 11:29:33|  分类:linux|  标签: |订阅 写出来就这么简单几步,当初刚接触Linux的时候搜索了很长时间,找了很多资料,总是出现这样那样的问题,最后终于摸索出最简单最有效的安装的方法。 随便打开一个带
    03-08
  • 部署Node.js项目(CentOS) node项目搭建
    部署Node.js项目(CentOS) node项目搭建
    操作步骤步骤 1:创建ECS实例选择操作系统为公共镜像CentOS7.2。使用root用户登录Linux实例。步骤2:部署Node.js环境—二进制文件安装该部署过程使用的安装包是已编译好的二进制文件,解压之后,在bin文件夹中就已存在node和npm,无需手工编译。安装步骤:1、
    02-10
  • centos安装python与jdk centos安装python3.7
    centos安装python与jdk centos安装python3.7
    安装python#压缩包安装[root@china ~]# yum -y install zlib*Loaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun
    02-10
  • centos6下同时安装python2和python3
    #build-essential compile packagesyum groupinstall "Development Tools"yum install openssl-develyum install zlib-develyum install make gcc gcc-c++ kernel-develhttp://unix.stackexchange.com/questions/291737/zipimport-zipimporterror-cant-decomp
    02-10
  • CentOS下查看文件和文件夹大小 linux查看文件夹
    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。  df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。  df可以查
    02-10
  • centos7 离线升级/在线升级操作系统内核
    centos7 离线升级/在线升级操作系统内核
    centos7 离线升级/在线升级操作系统内核目录一.前言二.系统环境三.系统内核下载网址四.centos7离线升级系统内核1.先查看系统环境2.离线升级系统内核五.在线升级系统内核一.前言CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于
    02-10
  • centos7 rc.local脚本执行不成功
    腾讯云 centos7   配置文件/etc/rc.local的内容如下:#!/bin/sh#secu_agent init monitor, install at Thu Aug 3 11:19:41 CST 2017/usr/local/sa/agent/init_check.sh/dev/null 21/usr/sbin/ntpdate ntpupdate.tencentyun.com /dev/null 21 /usr/local/qclo
    02-10
  • 如何在centos7启动时自动挂载硬盘
    在/etc/rc.local中加入如下的语句,这样就不用每次重启后手动挂载了(后面挂载的目录根据自己的需求而定):mount  /dev/sdb1 /usr/sharedfiles/sdbmount  /dev/sdc1 /usr/sharedfiles/sdcmount  /dev/sdb1 /root/sdbmount  /dev/sdc1 /root/sdc注意:可以
    02-10
  • centos7.2 开启防火墙
    开启防火墙当我们修改了某些配置之后(尤其是配置文件的修改),firewall并不会立即生效。可以通过两种方式来激活最新配置 systemctl restart firewalld 和 firewall-cmd --reload 两种方式,前一种是重启firewalld服务,建议使用后一种“重载配置文件”
    02-10
点击排行