ubuntu 工作常见问题1

本文包含以下内容:定时备份数据 mysql rabbitmq ubuntu安装解决依赖问题 RabbitMQ 的 Socket descr

ubuntu 工作常见问题1

定时备份数据

mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash

# 配置参数
BACKUP_DIR="/backup/mysql" # 备份文件存储目录
MYSQL_USER="root" # MySQL 用户名
MYSQL_PASSWORD="password" # MySQL 用户密码
DATE=$(date +%Y-%m-%d_%H-%M-%S) # 当前日期时间
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql.gz" # 备份文件名
LOG_FILE="/backup/backup.log" # 日志文件路径

# 创建备份目录
sudo mkdir -p $BACKUP_DIR
sudo chown mysql:mysql $BACKUP_DIR

# 记录开始时间
sudo echo "Backup started at $(date)" >> $LOG_FILE

# 执行备份并压缩
if sudo mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases |sudo gzip > $BACKUP_FILE; then
sudo echo "Backup completed successfully at $(date)" >> $LOG_FILE
else
sudo echo "Backup failed at $(date)" >> $LOG_FILE
fi

# 删除旧备份文件(保留最近 7 天的备份)
sudo find $BACKUP_DIR -type f -mtime +7 -name "*.sql.gz" -exec sudo rm {} \;

# 记录结束时间
sudo echo "Backup process finished at $(date)" >> $LOG_FILE


ctontab -e
0 2 * * 1,4 /mysql_back.sh

导入数据需要 mysql -uroot -proot >*.sql
不能用navicat

------------------------------------------------------------------------------------



以 .gz 结尾的文件通常是使用 gzip 压缩的文件。解压这些文件,你可以使用 gunzip 或 gzip -d 命令。以下是几种方法来解压 .gz 文件:

使用 gunzip
bash
复制代码
gunzip filename.gz
这将解压 filename.gz 文件,并生成一个 filename 文件。

使用 gzip -d
bash
复制代码
gzip -d filename.gz
这也将解压 filename.gz 文件,并生成一个 filename 文件。

解压并保留原始文件
如果你希望解压文件但保留原始的 .gz 文件,可以使用 zcat、gzip -cd 或者 gunzip -c 命令将其输出到新的文件中:

bash
复制代码
zcat filename.gz > filename
或者

bash
复制代码
gzip -cd filename.gz > filename
或者

bash
复制代码
gunzip -c filename.gz > filename

rabbitmq

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

# 定义备份目录和文件名
BACKUP_DIR="/backup"
BACKUP_FILE="$BACKUP_DIR/rabbitmq-backup-$(date +%Y%m%d%H%M%S).tar.gz"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 停止RabbitMQ服务
sudo systemctl stop rabbitmq-server

# 备份RabbitMQ的数据和配置
tar -czvf $BACKUP_FILE /var/lib/rabbitmq/*

# 启动RabbitMQ服务
sudo systemctl start rabbitmq-server

# 删除旧的备份文件(保留最近7天的备份)
find $BACKUP_DIR -type f -mtime +7 -name '*.tar.gz' -exec rm {} \;

# 打印备份完成信息
echo "Backup completed: $BACKUP_FILE"

ubuntu安装解决依赖问题

1
2
sudo apt install aptitude

RabbitMQ 的 Socket descriptors 饱满(连接数)

1. 增加系统文件描述符限制

首先,需要增加系统允许的最大文件描述符限制。

  1. 修改 /etc/security/limits.conf 文件:

    1
    2
    3
    bash
    复制代码
    sudo nano /etc/security/limits.conf
  2. 在文件末尾添加以下内容:

    1
    2
    plaintext复制代码rabbitmq soft nofile 65536
    rabbitmq hard nofile 65536

2. 修改系统配置文件

  1. 编辑 /etc/sysctl.conf 文件:

    1
    2
    3
    bash
    复制代码
    sudo nano /etc/sysctl.conf
  2. 添加或修改以下配置项:

    1
    2
    3
    plaintext
    复制代码
    fs.file-max = 100000
  3. 应用更改:

    1
    2
    3
    bash
    复制代码
    sudo sysctl -p

3. 修改 RabbitMQ 服务配置

确保 RabbitMQ 服务使用正确的文件描述符限制。

  1. 创建或编辑 /etc/systemd/system/rabbitmq-server.service.d/limits.conf 文件:

    1
    2
    bash复制代码sudo mkdir -p /etc/systemd/system/rabbitmq-server.service.d/
    sudo nano /etc/systemd/system/rabbitmq-server.service.d/limits.conf
  2. 添加以下内容:

    1
    2
    plaintext复制代码[Service]
    LimitNOFILE=65536

4. 修改 RabbitMQ 配置文件

  1. 打开 RabbitMQ 配置文件:

    1
    2
    3
    bash
    复制代码
    sudo nano /etc/rabbitmq/rabbitmq.conf
  2. 添加或修改以下配置项:

    1
    2
    plaintext复制代码# Increase the TCP backlog size (optional)
    tcp_listen_options.backlog = 4096

5. 重载并重启服务

  1. 重新加载 systemd 配置:

    1
    2
    3
    bash
    复制代码
    sudo systemctl daemon-reload
  2. 重启 RabbitMQ 服务:

    1
    2
    3
    bash
    复制代码
    sudo systemctl restart rabbitmq-server

6. 验证配置

  1. 验证 RabbitMQ 服务状态:

    1
    2
    3
    bash
    复制代码
    sudo systemctl status rabbitmq-server
  2. 查看当前文件描述符限制:

    1
    2
    3
    bash
    复制代码
    sudo rabbitmqctl status

rabbitmqctl status 的输出中,你应该能看到类似如下的信息,确认文件描述符数量已经被修改:

1
2
3
4
5
plaintext复制代码{file_descriptors,
[{total_limit, 65536},
{total_used, 50},
{sockets_limit, 58880},
{sockets_used, 45}]}

通过以上步骤,你应该能够解决 RabbitMQ Socket descriptors 饱满的问题。如果问题仍然存在,请检查 RabbitMQ 日志文件(通常位于 /var/log/rabbitmq/)以获取更多详细的错误信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
1. 检查当前文件描述符配置
运行以下命令,查看当前 RabbitMQ 的文件描述符限制:

rabbitmqctl status | grep file_descriptors
示例输出:

{file_descriptors,
[{total_limit, 1024},
{total_used, 500},
{sockets_limit, 829},
{sockets_used, 400}]}
total_limit 是文件描述符的总限制。
sockets_limit 是用于网络连接的限制。
如果当前的 total_limit 比您期望的值低(如 65536),需要调整以下设置。

2. 修改系统文件描述符限制
RabbitMQ 的文件描述符限制受操作系统的配置影响。需要修改操作系统的 nofile(文件描述符)参数。

2.1 临时修改(当前会话有效)
运行以下命令:

ulimit -n 65536
2.2 永久修改(推荐)
编辑系统的限制配置文件:

sudo nano /etc/security/limits.conf
为 RabbitMQ 用户添加以下行:

rabbitmq soft nofile 65536
rabbitmq hard nofile 65536
确保 PAM 模块启用了限制支持: 编辑 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive:

sudo nano /etc/pam.d/common-session
sudo nano /etc/pam.d/common-session-noninteractive
添加:

session required pam_limits.so
重启系统以应用更改:

sudo reboot
3. 为 RabbitMQ 服务设置更高的限制
如果 RabbitMQ 是通过 systemd 管理的服务,还需要修改 systemd 的文件描述符限制。

编辑 RabbitMQ 的服务配置:

sudo systemctl edit rabbitmq-server
添加以下内容:

[Service]
LimitNOFILE=65536
保存文件后,重新加载 systemd 并重启 RabbitMQ 服务:

sudo systemctl daemon-reload
sudo systemctl restart rabbitmq-server
4. 验证修改结果
再次运行以下命令,查看文件描述符限制是否更新:

rabbitmqctl status | grep file_descriptors
示例输出:

{file_descriptors,
[{total_limit, 65536}, {total_used, 500}, {sockets_limit, 829}, {sockets_used, 400}]}
如果 total_limit 已达到预期值,则修改成功。

内网安装mysql

1
https://blog.csdn.net/weixin_44842318/article/details/136200647

最新MySQL备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

# 配置参数
BACKUP_DIR="/home/xydata/backup/"
MYSQL_USER="root"
MYSQL_PASSWORD="root"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql.gz"
LOG_FILE="/home/xydata/backup/backup.log"

# 创建备份目录并设置权限
mkdir -p $BACKUP_DIR


# 记录开始时间
echo "Backup started at $(date)" | tee -a $LOG_FILE > /dev/null

# 执行备份并压缩
if mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases | gzip > $BACKUP_FILE; then
echo "Backup completed successfully at $(date)" | tee -a $LOG_FILE > /dev/null
else
echo "Backup failed at $(date)" | tee -a $LOG_FILE > /dev/null
fi

# 删除旧备份文件(保留最近 7 天的备份)
sudo find $BACKUP_DIR -type f -mtime +7 -name "*.sql.gz" -exec rm {} \;

# 记录结束时间
echo "Backup process finished at $(date)" | tee -a $LOG_FILE > /dev/null
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37




#!/bin/bash

# 配置参数
BACKUP_DIR="/home/xydata/backup/"
MYSQL_USER="root"
MYSQL_PASSWORD="root"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql.gz"
LOG_FILE="/home/xydata/backup/backup.log"

# 创建备份目录并设置权限
mkdir -p $BACKUP_DIR


# 记录开始时间
echo "Backup started at $(date)" | tee -a $LOG_FILE > /dev/null

# 执行备份并压缩
if mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases | gzip > $BACKUP_FILE; then
echo "Backup completed successfully at $(date)" | tee -a $LOG_FILE > /dev/null
else
echo "Backup failed at $(date)" | tee -a $LOG_FILE > /dev/null
fi

# 删除旧备份文件(保留最近 7 天的备份)
find $BACKUP_DIR -type f -mtime +7 -name "*.sql.gz" -exec rm {} \;

# 记录结束时间
echo "Backup process finished at $(date)" | tee -a $LOG_FILE > /dev/null

crontab -e

0 2 * * 1,4 bash /home/xydata/mysql_back.sh

通用脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash

# 服务信息数组,包含服务名、端口、Jar路径和日志路径
services=(
"ydsy:7777:/home/xydata/app/jars/ydsy/*.jar:/home/xydata/app/bin/ydsy.log"
"ps:8888:/home/xydata/app/jars/ps/*.jar:/home/xydata/app/bin/ps.log"
"yj:9999:/home/xydata/app/jars/yj/*.jar:/home/xydata/app/bin/yj.log"
)

# 通用模板脚本内容
template_script_content='#!/bin/bash

# 检查是否提供了必要的参数
if [ $# -ne 4 ]; then
echo "Usage: $0 <service_name> <port> <jar_path> <log_path>"
exit 1
fi

# 参数
SERVICE_NAME=$1
PORT=$2
JAR_PATH=$3
LOG_PATH=$4

# 定义JAVA_HOME和其他环境变量
export JAVA_HOME=/var/opt/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

echo "Processing $SERVICE_NAME on port $PORT..."

# 杀掉占用指定端口的进程
kill -9 $(netstat -nlp | grep :$PORT | awk '\''{print $7}'\'' | awk -F"/" '\''{ print $1 }'\'')
sleep 3

# 启动服务
nohup java -Xmx2048m -Xms2048m -jar $(ls -l $JAR_PATH | awk '\''{print $9}'\'' | tail -n 1) --server.port=$PORT > $LOG_PATH &
sleep 3

# 查看日志
tail -f $LOG_PATH
'

# 生成通用模板脚本
echo "$template_script_content" > start_service_template.sh
chmod +x start_service_template.sh

# 生成每个服务的启动脚本
for service_info in "${services[@]}"; do
IFS=':' read -r service port jar_path log_path <<< "$service_info"

service_script_content="#!/bin/bash

# 服务的变量
SERVICE_NAME=\"$service\"
PORT=$port
JAR_PATH=\"$jar_path\"
LOG_PATH=\"$log_path\"

# 调用通用模板脚本
$(pwd)/start_service_template.sh \$SERVICE_NAME \$PORT \$JAR_PATH \$LOG_PATH
"

service_script_path="$(pwd)/start_$service.sh"
echo "$service_script_content" > "$service_script_path"
chmod +x "$service_script_path"
done

echo "生成完毕"

方德缩小置顶

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
方德系统 软件缩小不能置顶
ChatGPT
在方德系统(Deepin或其衍生系统,如UOS)中,遇到软件窗口缩小后无法置顶的问题,可能是由于窗口管理器或系统设置的问题。以下是一些步骤和方法,可以帮助你解决这个问题:

检查和调整窗口管理器设置
方德系统使用的是Deepin桌面环境,它的窗口管理器可能有一些设置可以调整。

1. 使用Deepin设置中心
Deepin桌面环境提供了一个用户友好的设置中心,允许你调整窗口管理器的行为。

打开Deepin设置中心:

点击屏幕右下角的设置图标,或者从应用菜单中选择“设置”。
调整窗口管理设置:

在设置中心,导航到“窗口管理”部分。
检查并调整“窗口置顶”或“窗口管理”相关的选项,确保启用了窗口置顶功能。
2. 使用Deepin Tweaks工具
Deepin Tweaks是一个第三方工具,可以帮助你微调Deepin桌面环境的设置。

安装Deepin Tweaks:

sh

sudo apt install deepin-tweaks
启动Deepin Tweaks:

在应用菜单中找到并启动Deepin Tweaks。
调整窗口设置:

在Deepin Tweaks中,找到与窗口管理相关的设置,并进行调整,确保窗口可以置顶。
使用快捷键
有时,通过快捷键可以快速解决窗口管理问题。

切换窗口置顶状态:

选中窗口后,使用快捷键Alt + F3打开窗口菜单,然后选择“始终在最前”。
切换窗口状态:

使用快捷键Alt + Space打开窗口控制菜单,检查是否有“置顶”选项。
检查系统更新
确保你的系统和窗口管理器是最新版本,更新系统可能解决一些已知问题。

更新系统:
sh

sudo apt update
sudo apt upgrade
重启窗口管理器
有时,重启窗口管理器可以解决一些临时问题。

重启Deepin窗口管理器:
sh

killall dde-kwin
窗口管理器会自动重启,尝试再次进行窗口置顶操作。

重新配置窗口管理器
如果上述方法都无效,你可以尝试重新配置或重置窗口管理器的设置。

重置Deepin窗口管理器配置:

sh

mv ~/.config/deepin/dde-kwin/ ~/.config/deepin/dde-kwin.bak
重启窗口管理器:

sh

killall dde-kwin
这样做会将窗口管理器的配置重置为默认状态,看看是否解决了窗口无法置顶的问题。

使用命令行工具
在一些情况下,你可以使用命令行工具强制设置窗口置顶。

安装wmctrl工具:

sh

sudo apt install wmctrl
使用wmctrl设置窗口置顶:

sh

wmctrl -r :ACTIVE: -b add,above
这将把当前活动窗口置顶。

通过以上方法,你应该能够解决方德系统中软件窗口缩小后无法置顶的问题。如果问题仍然存在,建议查看相关系统文档或联系方德系统的技术支持获取进一步帮助。

开机自启服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
visudo
xydata ALL=(ALL) NOPASSWD: ALL
给xydata用户免密
在/etc/rc.loccal里面

#!/bin/bash

# Directory containing your scripts
SCRIPT_DIR="/home/xydata/app/bin/"

# Adding all .sh scripts from the specified directory
for script in "$SCRIPT_DIR"/*.sh
do
if [ -f "$script" ]; then
if [ ! -x "$script" ]; then
chmod +x "$script"
fi
sudo -u xydata "$script" & sleep 10
fi
done

exit 0

sudo chmod a+x /etc/rc.local

无法显示文件扩展名

1
2
3
4
5
6
7
8
按下 Win + R 键,调出运行对话框。
在运行对话框中输入以下命令并按回车:
control folders
这将直接打开“文件夹选项”窗口。
在“文件夹选项”中设置显示文件后缀:
在“文件夹选项”窗口中,切换到 “查看” 选项卡。
在“高级设置”列表中,找到并取消勾选 “隐藏已知文件类型的扩展名” 选项。
点击 “应用”,然后点击 “确定”。

无法自动启动win服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
打开注册表编辑器:

按下 Win + R 键,输入 regedit 并按回车,打开注册表编辑器。
定位到注册表项:

如果你想为当前用户设置开机自启动,定位到:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
如果你想为所有用户设置开机自启动,定位到:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
创建新的字符串值:

右键点击右侧空白处,选择“新建” -> “字符串值”。
将新建的字符串值命名为你想要的名称,例如 LEDStartup。
设置文件路径:

双击刚刚创建的字符串值,在“数值数据”中输入以下内容:
makefile
复制代码
E:\LED\LED.exe
如果路径中有空格,需要用引号括起来,但你的路径中没有空格,所以直接输入即可。
保存设置并退出注册表编辑器。

配置supervisor 管理服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1.sudo apt update && sudo apt install supervisor
安装supervisr
2.vim /etc/supervisor/supervisord.conf
[inet_http_server]
port=*:9001
username=admin
password=admin

9001是web页面 admiin是账号密码
systemctl restart supervisor
supervisorctl reload
3 /etc/supervisor/conf.d 下编辑一个以conf结尾的文件
[program:menzhen] ; 服务名称
directory=/home/xydata/app/bin ; 先切换到这个目录
command=/home/xydata/manager/manager.sh
user=xydata ; 以什么用户启动
autostart=true ; 是否跟随supervisor启动而启动
autorestart=false ; 停止后是否重启
startretries=3 ; 重启的次数
stderr_logfile=/var/log/menzhen_service.log ; 错误输出的位置
stdout_logfile=/var/log/menzhen_service.log ; 正确输出的位置
stopasgroup=true ; 停止时将主进程和子进程作为一个组停止
killasgroup=true ; 发送停止信号给整个进程组



upervisorctl stop program_name 停止某个进程
supervisorctl start program_name 启动某个进程
supervisorctl restart program_name 重启某个进程
supervisorctl stop all 停止全部进程
supervisorctl reread 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl update 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
supervisorctl avail
supervisorctl status



定义脚本
#!/bin/bash
/usr/local/src/jdk1.8.0_311/bin/java -Xmx2048m -Xms2048m -jar `ls -l /home/xydata/manager/*.jar | awk '{print $9}' | tail -n 1` --server.port=8888

麒麟离线安装服务(centos)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1. 在有网的地方安装 createrepo
yum install createrepo -y

2. 创建安装的目录位置
mkdir /home/xydata/supervisor

3. 下载需要的服务
yum install --downloadonly --downloaddir=/home/xydata/supervisor supervisor
createrepo /home/xydata/supervisor
tar cvzf superviosr.tar.gz supervisor
4.制作yum源
cd /etc/yum.repo.d/
mkdir back
mv ./* back
vim local.repo
[local]
name=local
baseurl=file:///home/xydata/supervisor
enabled=1
gpgcheck=0

yum clean all
yum makecache

5. 在离线的机子上 上传包然后安装
yum install --enablerepo=local supervisor

ubuntu离线安装服务

1
2
3
4
5
6
1. 在有网的服务器
/var/cache/apt/archives 是默认的安装包缓存地址
rm -rf /var/cache/apt/arcjoves/*
清空原本的缓存 最好先备份一下
apt -d -f install supervisor
-d 标识仅下载不安装,-f 是自动解决依赖问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2. # 创建一个名为 /opt/ubuntu_mirrors 的目录,用于存放后续操作相关的文件和数据
mkdir /home/xydata/supervisor

# 将 /var/cache/apt/archives/ 目录下的所有文件和目录递归复制到 /home/xydata/supervisor
cp -r /var/cache/apt/archives/* /home/xydata/supervisor

# 切换当前工作目录到 /opt/ubuntu_mirrors
cd /home/xydata/supervisor

# 删除 partial/ 目录及其lock 文件
rm -rf partial/ lock

# 使用 apt-ftparchive 工具生成当前目录(. 表示当前目录,即 /opt/ubuntu_mirrors)下的软件包信息文件 Packages
# 这个文件包含了当前目录中软件包的详细信息,如名称、版本、依赖关系等,用于构建本地镜像源的软件包索引
apt-ftparchive packages . > Packages

# 使用 apt-ftparchive 工具生成当前目录下的发布信息文件 Release
# 该文件包含了关于本地镜像源的一些基本信息,如镜像源的描述、包含的组件、日期等,用于提供给 apt 工具识别和使用本地镜像源
apt-ftparchive release . > Release

# 切换当前工作目录到上级目录(即 /home/xydata)
cd../

# 将 /home/xydata/supervisor 目录及其内容打包成一个名为 supervisor.tar.gz 的 tar 归档文件
# 这个归档文件可以用于备份、传输或分发本地镜像源相关的数据
tar -cvf supervisor.tar.gz supervisor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
3. # 将打包的上传到离线服务器中
mkdir /home/xydata/
tar xf supervisor.tar.gz
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 使用 echo 命令向 /etc/apt/sources.list 文件追加新的一行内容,即本地镜像源的配置信息
# "deb [trusted=yes] file:/opt/ubuntu_mirrors./" 是配置格式
# "deb" 表示这是一个 Debian 软件源类型
# "[trusted=yes]" 表示信任该软件源,不进行数字签名验证(因为是本地构建的,假设其可信)
# "file:/opt/ubuntu_mirrors" 是本地镜像源的文件路径
# "./" 表示该软件源的目录结构为当前目录(在本地镜像源的上下文中就是 /home/xydata/supervisor 目录下的相应结构)
echo "deb [trusted=yes] file:/home/xydata/supervisor ./" >>/etc/apt/sources.list

# 更新软件包列表,让系统根据新配置的本地镜像源获取软件包信息
# 此操作会扫描本地镜像源目录,读取软件包的相关元数据,如软件包名称、版本、依赖关系等,并更新本地的软件包索引
apt update

# 离线安装 build-essential 软件包及其依赖项
apt install -y supervisor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
4.
1. 重装
使用 --reinstall 即可

例如 重装 build-essential

apt -f -y install --reinstall build-essential

2. 查看已经安装的软件
apt list --installed 配合grep筛选

3.卸载
apt-get remove 保留配置文件)、 apt-get purge (彻底删除)

4. 搜索
apt search

五. dpkg 的常用参数
dpkg 不会自动处理依赖问题

1. 安装软件
dpkg -i *.deb

可以直接制定deb文件的名称;但有时候会因为缺少依赖而安装失败;

2. 查看已安装的软件
dpkg -l 配合 grep 管道来进行查询

3. 卸载软件
dpkg -r (保留配置文件)、 dpkg -P (彻底删除)

脚本启动

1
2
3
4
5
6
7
8
9
#!/bin/bash
export JAVA_HOME=/var/opt/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
kill -9 $(netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }')
sleep 3
nohup java -jar -Xmx2048m -Xms2048m `ls -l /home/xydata/app/jars/queue/*.jar | awk '{print $9}' |
tail -n1` --server.port=8080 > /home/xydata/app/bin/queue.log &

ubuntu 工作常见问题1
https://www.tiantian123.asia/2025/12/25/ubuntu__工作常见问题1/
作者
lht
发布于
2025年12月25日
许可协议