# 一.部署发布

# 1.关闭某一进程脚本

#grep查询进程关键字
ps -ef | grep redis

#用awk输出进程ID
awk '{print $2}'

#最后批量kill
xargs kill -9

ps -ef | grep redis | awk '{print $2}' |xargs kill -9
1
2
3
4
5
6
7
8
9
10

# 2.同时执行

使用&&可以执行多个命令

image-20230117161057151

# 3.指定端口

java -jar sentinel-dashboard-1.8.6.jar --server.port=8181
1

# 4.统计文件每天的量

# 定义日期格式
DATE_FORMAT="%Y-%m-%d"

# 获取当前日期
TODAY=$(date +"${DATE_FORMAT}")

du -bs /kwan/blog/blog | cut -f1 > /tmp/${TODAY}_start_size
1
2
3
4
5
6
7

# 5.比较文件大小差值

diff /tmp/start_size /tmp/end_size
1

# 6.年月日时分秒

#日期,年月日时分秒
$(date +%F%n%T)

#输出日期
echo $(date +%F%n%T)
1
2
3
4
5

# 7.天增量文件信息

#!/bin/bash

# 指定目标目录
DEST_DIR="/kwan/blog/blog"

# 定义日期格式
DATE_FORMAT="%Y-%m-%d"

# 获取当前日期
TODAY=$(date +"${DATE_FORMAT}")

# 获取昨天的日期
YESTERDAY=$(date -d "yesterday" +"${DATE_FORMAT}")

# 使用 rsync 和 find 命令计算昨天增量
rsync -a --stats --dry-run --itemize-changes $(find "${DEST_DIR}" -type f -newermt "${YESTERDAY}" ! -newermt "${TODAY}") ./ | grep "^>" > "${DEST_DIR}/increment_${YESTERDAY}.log"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 8.命令解析

nohup sh mqbroker -c /opt/software/rocketmq-all-4.5.1-bin-release/conf/2m-2s-sync/broker-b-s.properties &
1

这个命令是启动 RocketMQ 的 broker 服务,其中nohup表示在后台运行,sh表示执行 shell 脚本,mqbroker表示启动 broker 服务,-c指定了配置文件路径。&命令将在后台运行,而不会阻塞您的终端

nohup sh mqbroker -c /opt/software/rocketmq-all-4.5.1-bin-release/conf/2m-2s-sync/broker-b.properties >/dev/null 2>&1 &
1

这个命令是启动 RocketMQ 的 broker 服务,并将输出重定向到/dev/null,即不输出任何日志信息。

如果您想要查看日志信息,可以将>/dev/null 2>&1这部分去掉,或者将/dev/null替换为日志文件路径,比如:

nohup sh mqbroker -c /opt/software/rocketmq-all-4.5.1-bin-release/conf/2m-2s-sync/broker-b.properties > /opt/software/rocketmq-all-4.5.1-bin-release/logs/broker.log 2>&1 &
1

这样就会将日志输出到/opt/software/rocketmq-all-4.5.1-bin-release/logs/broker.log文件中。

# 9.错误终止

# 一些需要严格错误检查的代码
set -e

# 一些可以容忍错误的代码
set +e
1
2
3
4
5

# 二.常用工具

# 1.虚拟内存

由于双十一白嫖的阿里云 CentOS 服务器, 配置有点低(2 核 4G)

image-20221227172534728

我使用 vuepress 搭建的自己的博客网站,在部署的时候,使用命令编译安装 npm run docs:dev 出现如下错误

virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
已杀死
1
2
3

当然,仅仅一个前端应用应该是不对造成这么大的内存占用的,因为还部署了其他的一些服务,还不想停掉.可以查一下前 8 内存占用排名,如下图所示,都是不想停掉的

ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -8
1

image-20221227172904807

解决办法就是使用 swap 内存 使用命令 free -m 查看当前 swap 内存大小,可以看到下面的结果 swap 行全是 0,表示没有启用 swap 内存。

free -m
              total        used        free      shared  buff/cache   available
Mem:            990         607         288           0          94         265
Swap:             0           0           0
1
2
3
4

创建 2G 的虚拟内存文件 /opt/swap,分别执行如下三个命令

dd if=/dev/zero of=/opt/swap bs=1024 count=2048000

mkswap /opt/swap

swapon /opt/swap
1
2
3
4
5

再次查询 swap 内存,可以看到 swap 已经被分配了 2G

free -m
              total        used        free      shared  buff/cache   available
Mem:            990         609          78           0         302         244
Swap:          1999           0        1999
1
2
3
4

2G 的虚拟内存启用完成!

# 2.无权限删除

#提示无权限
rm newinit.sh

#查询下文件信息
lsattr newinit.sh

#修改i
chattr -R -i newinit.sh

#修改a
chattr -R -a newinit.sh

#再次删除
rm newinit.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3.获取进程号并杀掉

echo `ps -ef | grep /blog/blog/node_modules | grep -v grep | awk '{print $2}'`
kill -9  `ps -ef | grep /blog/blog/node_modules | grep -v grep | awk '{print $2}'`
1
2

# 4.端口与应用

查看端口和进程号: ss -nltp

image-20230717174230153

根据docker-proxy查看docker: docker ps -a

image-20230717174324089

上次更新: 11/1/2024, 9:34:49 AM