目录
日常运维记录
1.linux运维总结命令篇
1.1.linux下nohup java执行
nohup java -jar 文件名字 >inter.log & (jar包执行)
tail -n 500 nohup.out >inter.log (查看inter.logh后500行日志文件)
若指定一个文件输出日志 例:nohup java -jar interfaces-1.1.0-zz3.jar >inter.log &
指定端口部署jar包 例:
nohup java -jar interfaces-1.0.0.jar --server.port=30030>inter30030.log &(加上nohup 和& 是在后台执行 连接断了也不影响运行)
1.2.linux下压缩 zip tar使用详情
Linux zip分卷压缩 nohup zip -r -s 5g 2022.zip ./2022 & (加上nohup 和& 是在后台执行 连接断了也不影响运行)
-s是分割每个的大小
Linux zip分卷解压
unzip -d /opt new.zip new.zip文件解压到opt目录下
tar -zcvf a.tar.gz a1.txt a2.txt (对多个文件进行打包压缩) 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
tar -zxvf a.tar.gz 将 a.tar.gz 解压到当前目录
tar -zxvf a.tar.gz -C /opt/ 将 myhome.tar.gz解压到 /opt/ 目录下
1.3.scp和rsync传输
- 1.3.1scp机器机器之间文件传输
scp -r /res6000/data/dianwei.zip root@10.41.33.63/root/yuanwanghechu
(将此目录下dianwei.zip传输到10.41.33.63l路径下)
- 1.3.2rsync差异化传输(支持断点续传,数据同步)
rsync -av /u01/XYH/userdata/2021/ root@10.239.0.1:/data/XYH02/userdata02/
rsync -avhP /u01/XYH/userdata/2021/ root@10.239.0.1:/data/XYH02/userdata02/
rsync -av /data/cr.sh root@192.168.118.132:/data/
rsync -av /u01/XYH/userdata/2022/ root@10.239.86.52:/data/XYH/userdata/
nohup rsync -avuz -e 'ssh -p 9999' root@10.239.0.3:/u01/XYH /data/XYH/ & 从0.3传输文件到本机
rsync -avuz /data/XYH/23 -e 'ssh -p 8888' root@10.233.67.226:/data/XYH/23P:表示在传输被中断后,如果目标文件部分传输完成,那么 rsync 会保留这个文件,并在下次同步时从断点处继续传输,而不是重新传输整个文件。
-a
:选项尽量保持源目录的所有属性和结构。-v:详细模式(verbose mode),在同步过程中显示更多的信息,包括哪些文件被复制、删除等。
-h:人类可读模式(human-readable mode),在显示传输速率、文件大小等信息时,以更易于阅读的格式(如 KB/s, MB/s, GB/s)显示.
综上所述,这个命令的作用是:以归档模式(尽可能保持原样),详细且人类可读地,从本地目录 /u01/XYH/userdata/2021/ 同步文件到远程机器 10.239.0.1 的 /data/XYH02/userdata02/ 目录下,同时在同步过程中显示进度信息,并在传输被中断时保留部分传输的文件以便下次继续。
1.4.linux防火墙基础使用
防火墙端口号开启
firewall-cmd list-all
vim /etc/firewalld/zones/public.xml开启后需要重启服务 systemctl restart firewalld.service或者firewall-cmd --reload
<service name="ssh"/>
<masquerade/>
<service name="dhcpv6-client"/>
<port protocol="tcp" port="8088"/>
<port protocol="tcp" port="9001"/>
<port protocol="tcp" port="9002"/>
开启端口号定义来自来自IPv4地址10.240.0.6的TCP流量通过端口8085进入时才会被允许通过(接受)
<rule family="ipv4">
<source address="10.240.0.6"/>
<port protocol="tcp" port="8085"/>
<accept/>
</rule>
1.5.linux设置开机启动
more /etc/rc.d/rc.local 此路径下 例: bash /opt/start.sh 自启动一个脚本
1.6.rpm包的使用
rpm -ivh traceroute-2.0.22-2.e17.x86_64.rpm
1.7.sar的使用
sar -n DEV 监视服务器上的网络流量
################ 格式 ######################
%io/wait(代表硬盘输入输出有问题)
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比。
1.若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2.若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3.若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。sar -n DEV 1 5
-n:次数
DEV:类型参数
1:时间间隔
5:次数
sar -u 1 5秒输出一次CPU利用率信息
sar -P ALL 1 “-P ALL”选项指示对每个内核输出统计信息:
sar -q -s 10:00:00 -e 18:00:00 显示从上午10点到下午6点期间的系统负载情况。
sar -r 1 内存监控
sar -d -p 3 2 各个I/O设备情况 (使用-d选项可以显示各个磁盘的统计信息,再增加-p选项可以以sdX的形式显示设备名称)
1.如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
2.如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。
3.如果avgqu-sz比较大,也表示有大量io在等待。
1.8.crontab 任务调度计划
3 3 * * * echo >/opt/dgNew/nohup-2.out
6 6 * * 1 find /data/Histest-9.0.70/logs -type f -name "*.txt" -exec rm -f {} \; 每周一6点6分清空此路径下所有txt结尾和log结尾的文件清楚
6 6 * * 4 find /data/mydocker/his9001/tomcat/9001logs -type f \( -name "*.txt" -o -name "*.log" \) -exec rm -f {} \;grep -E "^(Aug 30 (01:4[0-9]|02:[0-4][0-8]))" /data/logs/inter.log > 1.log 怎样抓取当天 时间1.40 到2.48的日志 并且输出到1.log
1.9.linux网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置
TYPE=Ethernet ##网卡类型为以太网
NAME=enp0s3 ##指定网络链接的名字为eth0,个人习惯,开心就好
DEVICE=enp0s3 ##指定文件管理的网卡名称
BOOTPROTO=static ##ip是否动态获取:dhcp动态获取,none和static表示静态网络
ONBOOT=yes ##是否开机启动
IPADDR=192.168.1.110 ##设定ip为192.168.1.110
NETMASK=255.255.255.0 ##子网掩码
GATEWAY=192.168.1.1 ##网关地址
DNS1=114.114.114.114 ##DNS地址,如需域名解析需要设置IPADDR=192.168.1.110
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
vim /etc/resolv.conf 可以直接在此路径下配置DNS
nameserver 8.8.8.8
1.10.linux分盘后 刷新监测
- 刷新检测 for i in {1..18}; do echo "- - -" > /sys/class/scsi_host/host$i/scan; done
/svs/class/scsi_host 在此目录下 查看 有多少个host
- find /sys/class/scsi_host -name "host*" -exec sh -c 'echo "- - -" > {}'/scan \;
自动遍历host目录并全部传参刷新存储。
1.11.查看tcp链接数量
netstat -antp | grep TIME_WAIT | wc -l
netstat -antp |grep CLOSE_WAIT|wc -l
1.12.设置机器密码永不过期
chage -m 0 -M 99999 -I -1 -E -1 root
chage -l root (可以看到输出结果中的 Password expires 字段为 never,表示密码永不过期
设置免密ssh 某个端口登录另一台机器
ssh-copy-id -i "-p 8888 root@10.233.67.226"
1.13.netstat ps 解析
- netstat
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况
- ps -ef |grep java 查找程序
1.14.linux设置中文语言
locale -a |grep zh_CN 查看语言包
localectl set-locale LANG=zh_CN.UTF8 插入语言
1.15.linux查看系统信息
cat /etc/os-release
more /proc/cpuinfo
1.16.linux修改文件权限所有者
chown niushijie:niushijie /myceshi
1.17.创建linux分组
1.创建安装用户组(dmdba):groupadd dmdba
2.创建用户(dmdba):useradd -g dmdba -m -d /home/dmdba -s /bin/bash dmdba
解析:-m:这个选项告诉useradd命令为新用户创建一个家目录(home directory)
-d: /home/dmdba:这个选项允许你为新用户的家目录指定一个具体的路径。
-s:/bin/bash:这个选项用于指定新用户的登录shell。在这个例子中,新用户dmdba的登录shell将被设置为/bin/bash,
这是最常见的shell之一,提供了丰富的功能和强大的脚本支持。3.查看所有用户以及组 cat /etc/passwd
4.查看用户信息 id 用户名
1.18.查看服务器的逻辑cpu
cat /proc/cpuinfo
逻辑cpu,每分钟的负载值为不超过4 是最理想的,也就是每个进程有占用一个逻辑cpu是最合适的。
1.19.top命令详细解释
top显示进程所占用的系统资源,每三秒钟显示一次。
第一行从左到右依次表示当前时间、系统已运行时间、登录用户数(终端登录显示为ttyx,远程登录显示为pts/x)、平均负载(每1分钟、每5分钟、每15分钟)主要是注意第一个负载值,值越大说明服务器压力越大。一般情况下,这个值不要超过服务器的逻辑cpu数量就没有关系。
-
第二行:
Tasks :总进程数
runing:正在运行的进程数
sleeping:正在处于休眠状态的进程数。
stopped:已经停止的进程数
zombie:父进程被意外中止,留下一些子进程无人管理。这就是僵尸进程数。第三行是cpu百分比。需要关注的是us。系统负载可以很高,%us
可能很低或是0%。但是当%us很高的话,那么系统负载肯定很高。
Kib MeM :内存的使用情况。总大小、剩余、已使用、写入磁盘/从磁盘中读取的缓存大小(关注)
Kib Swap :交换分区的使用情况
1.20.sar命令
- 用sar命令几乎可以监控系统所有的资源状态。它的优点是可以打印历史信息,可以显示当天从零点到当前时刻的系统状态信息。
yum install -y sysstat //安装sar命令包
- sar -n DEV 查看流量网卡
- rxpck:接收到的数据包。接收的数据包量太大会导致网络堵塞,网站不能打开。数据包上万了,肯定不正常。
txpck:发送出去的数据包
rxkB:接收的数据量。
txkB:发送的数据量。100M带宽换算成速率也就是12.8M/s。
1.21nloa监视网卡流量
- 用nload命令更直观的查看网卡流量。需要安装2个包
yum install -y epel-release
yum install -y nload
此内容借鉴了日常运维-1_日常运维服务-CSDN博客支持原创
2.linux网络路由
2.1.永久路由
- vim /etc/sysconfig/network (在此文件添加路由永远不会消除)
- 路由解析
1. route add 192.168.1.0/24 via 192.168.1.254
route add:添加一个新的路由条目。
192.168.1.0/24:表示目标网络 192.168.1.0,子网掩码为 255.255.255.0。
via 192.168.1.254:表示数据包通过 192.168.1.254 这个网关。2.route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
route add:这是用来添加一个新的路由条目的命令。
-net:表示目标是一个网络。如果使用-host,则表示目标是一个单一的主机。
<目标网络>:这是你要路由到的网络地址,例如 192.168.1.0。
netmask <子网掩码>:指定该网络的子网掩码,例如 255.255.255.0。
gw <网关IP地址>:指定路由数据包通过的网关IP地址。
2.2.linux三剑客稍写
grep -r xinyihua ./data/a.txt
sed -i sed -i s/xinyihua/luoyanghuanyingni/g ./a.txt(i 不区分大小写 ,s 表示替换 ,g 表示全局匹配 把文件中 xinyihua替换为luoyanghuanyingni )
awk:该命令用于处理以字段为单位组织的文本数据。它可以对每个字段执行不同的操作,
如打印、计算、格式化等。例如,要从文件 file.txt 中提取第二列并计算它们的总和,可以使用以下命令:
2.3.linux环境变量输出
echo $PATH
3.Linux docker学习
docker
docker ps 列出所有正在运行的容器,包括 ID、名称、镜像、端口等信息:
docker-compose down 关闭 docker-compose up -d 启动
docker logs -f -n300 3fa092894c1c (此为标识符) 查看日志
docker 日志在mydocker下面有
docker全新总结
run 进去的容器CTRL+p+q退出容器不会停止
docker exec -it 4b8221e2d644(标识符) /bin/bash 进入正在运行的容器并以命令进行交互 前面加(exec)后 exit退出容器不会停止
docker run -it +镜像名字 新建+启动容器
docker run -d redis:6.0.8 后台守护进程打开
docker system df 查看镜像/容器/数据卷所占用的空间/
docker images centos 查看某一个镜像大小信息
docker pull 从 Docker Hub 下载镜像。 示例:下载 nginx 镜像: docker pull nginx
docker rmi +某个镜像名字的id 删除某个镜像
docker images 列出本地镜像列表
docker ps 列出所有正在运行的容器,包括 ID、名称、镜像、端口等信息:其中 -a 参数表示列出所有容器,包括已停止的容器
-
docker rm $(docker ps -a -q) 删除所有处于终止状态的容器
docker rename his7001 his7002 修改容器名字
docker load -i my_image.tar(此为打包后的镜像名字) 可以使用 docker load 命令将镜像加载到本地 Docker 环境启动和关闭容器
docker restart +容器id或者容器名字
docker stop +容器id或者容器名字
docker kill +容器id或者容器名字
docker start +容器id或者容器名字
docker kill +容器id或者容器名字
docker top +容器ID 查看容器内运行的进程
docker inspect +容器ID 查看容器内部细节
****docker cp 4b8221e2d644:/data/a.txt /tmp/ 从容器复制到主机
docker cp /tmp/ 4b8221e2d644:/data/a.txt 从主机复制到容器
****docker export 61279fc3cc6a > abcd.tar.gz 这个命令使用Docker将容器ID为"61279fc3cc6a"的镜像
导出为一个名为"abcd.tar.gz"的压缩存档文件
****cat abcd.tar.gz |docker import - @guigu/centos:7.6 该命令的作用是将当前目录下名为 abcd.tar.gz 的文件作为 Docker 镜像导入,
并将其命名为 jingxaing
docker commit -m"add vim cmd " -a="niushijie" e09985f6053e niushijie/mycentos:1.1 提交容器副本成为一个新的镜像
-m为注释 -a为作者 容器名字 版本号
=====>>>>>阿里镜象加速器 mkdir -p /etc/docker vim /etc/docker/deamon.json添加如下内容
{
"registry-mirrors": ["https://r537py44.mirror.aliyuncs.com"]
}
重启服务器
systemctl deamoin-reload
systemctl restart docker
docker 数据卷
docker run -it -p 7003:8080 --privileged=true -v /data/mydocker/his7003/tomcat/7001logs:/usr/local/tomcat/logs -v /data/webapps:/usr/local/tomcat/webapps -v /data/mydocker/his7003/server.xml:/usr/local/tomcat/conf/server.xml -v /data/mydocker/his7003/context.xml:/usr/local/tomcat/conf/context.xml -v /data/mydocker/his7003/jdbc.properties:/usr/local/tomcat/webapps/his/WEB-INF/properties/jdbc.properties -v /data/mydocker/his7003/quartz.properties:/usr/local/webapps/his/WEB-INF/classes/quartz.properties --name his7003 tomcat
docker run -d -p 7002:8080 --privileged=true -v /data/mydocker/his7002/tomcat/7002logs:/usr/local/tomcat/logs -v /data/webapps:/usr/local/tomcat/webapps -v /data/mydocker/his7002/server.xml:/usr/local/tomcat/conf/server.xml -v /data/mydocker/his7002/context.xml:/usr/local/tomcat/conf/context.xml --name his7002 30ef4019761d
(-v后面需要确认宿主机的路径存在 文件的话需要复制一个源文件进去 否则容器跑不起来 另外程序包里面的数据库地址不对的话程序也起不来)docker run -d -p 7001:8080 --name his7001 fb5657adc892 docker后台启动修改名字 并且指向端口
docker网络
docker network create my_network(这个是创建的网络名字) 创建一个网络 一般运用docker都是创建一个网络 并且创建不同的有规则的容器名字
---指定网络 进入容器内通过服务名称就能ping通
例:docker run -d -p 8081:8080 --network zzyy_network --name tomcat81 billygoo/tomcat8-jdk8
docker network rm my_network 删除网络docker-commpose 总结安装
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
4.linux nginx代理
4.1日常简单代理
######################## 常用代理参考 ####################
location /His/hospem {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://172.16.0.67:8889;
}
location /hospem {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://172.16.0.67:8889;}
4.2nginx map指向
- (如果需要指向几家医院到一个程序 可以创建一个map 两个程序就需要两个map
如下cs对应的下面访问的节点 服务名字)
map $cookie_organizeId $code2
{
default zs; 在这个Nginx配置中,default zs; 是指令 map 的默认值设置。
0C7A55418CB0E7D499D9D8A65C465F2D cy;
FAB289F946239CF16698AE7A2FC01460 cy;
3D3EFB77ACD1A5B94191EE8A95DDCEEA cy;
A416FEDA4C2B46DB7B3D4EFD2FC63A44 cy;
141FDF1D229F50F614F439792C91759A cy;
F561C949C5F146B1759A1562EA098AC0 cy;
}
cy 代表指向这个节点
upstream pt_server_cy(这个是格式)
{
server 172.20.22.13:9002;
keepalive 32;
}
5.数据库相关
5.1.mysql相关
MySQL数据库命令
查看密码策略:show VARIABLES like '%password%';
查看用户:select user,host from mysql.user;
查看超时:show variables like'%timeout%';
查看日志:show variables like '%log%';
查看SSL:show variables like'%ssl%';
5.2.oracle相关
Oracle数据库命令
查看关闭远程操作系统认证,show parameter remote_os_authent;
查看密码更换策略,SELECT profile,RESOURCE_NAME,LIMIT FROM DBA_PROFILES where RESOURCE_NAME='PASSWORD_LIFE_TIME';
查看是否启用登录失败锁定策略,SELECT profile,RESOURCE_NAME,LIMIT FROM DBA_PROFILES where RESOURCE_TYPE='PASSWORD';
查看是否启用登录超时退出策略,SELECT profile,RESOURCE_NAME,LIMIT FROM DBA_PROFILES where RESOURCE_NAME='IDLE_TIME';
查看用户,select username,password from dba_users where ACCOUNT_STATUS='OPEN';
查看audit_trail日志,select value from v$parameter where name='audit_trail';
查看audit_sys_operations日志, select value from v$parameter where name='audit_sys_operations';欢迎各位大佬指正。