Linux快速部署文件服务器

参考文档:

Linux命令之nohup详解 - 掘金

【Linux】ps -ef|grep详解-CSDN博客

有个简单想法,我的一些文件放在机器某个目录下面,可以简单提供团队内部人员浏览和下载功能,节约时间,用最简单方法实现。

注:这个方式并不安全稳定,只适合在内部测试环境运行使用。

先看看最后效果图:

Linux快速部署文件服务器_第1张图片

1.启动文件服务器

先在终端运行如下命令就可以实现(服务器上已经安装了python3):

# 切到想要分享的目录下面
cd target_path
# 挂起运行文件服务器,服务器端口号为8000
nohup python3 -m http.server 8000 &

解释一下上面指令:

python3 -m http.server 用于启动一个基本的 HTTP 服务器,用于在开发环境中快速共享文件。这个命令通常用于本地开发和调试,不适合在生产环境中使用。

nohup Command [Arg...] [ &] 指令名称源于“no hang up”的缩写,可以忽略挂断信号的情况下运行某一条指令。这允许命令在用户注销(log out)或者有其他挂断连接的行为发生之后继续运行。总之,我们用 nohup 指令去启动http服务器,保证在shell关闭后文件服务还能正常运转。

nohup Command [Arg...] [ &]
最后的" &":表示后台运行,不霸占交互命令行

2.关闭文件服务进程

# 查找当前文件服务进程pid
ps -ef |grep python3
# 关闭服务
kill pid

如下图,第2列为进程的pid

3.开机自启

每次重启服务器,这个文件服务的进程会被关闭,还需要再次操作,比较麻烦。我们这里使用systemd配置来实现开启自启服务器的功能。

1.创建一个shell脚本

我们将配置启动时运行这个脚本,来启动文件服务。我这里命名为 share_files.sh。

这里将脚本放在/usr/local/bin目录下。

#!/bin/bash
cd /usr/apk
#echo "Starting HTTP server" >> /var/log/http_server.log
# 这里nohup将command的标准输出重定向到http_server.log
nohup /usr/bin/python3 -m http.server 8000 > /var/log/http_server.log 2>&1 &

给脚本加上可执行权限:

chomd +x share_files.sh

2.创建一个service unit文件

这个文件来对自启动服务进行配置

例如share_files.service,并将其放置在/etc/systemd/system/目录下。

[Unit]
Description=my share files shell script
After=multi-user.target

[Service]
Type=forking
WorkingDirectory=/usr/apk
ExecStart=/usr/local/bin/share_files.sh

[Install]
WantedBy=multi-user.target

3.启用服务

使用systemctl enable命令来在系统启动时自动启用这个service unit文件。

systemctl enable share_files.service

配置好之后,可以重启服务器试试看有没有生效。

4.服务其他配置

可以使用systemctl命令来启动和管理这个service unit文件。

# 启动服务
systemctl start share_files.service

# 停止服务
systemctl stop share_files.service

# 重启服务
systemctl restart share_files.service

# 查看服务状态
systemctl status share_files.service

你可能感兴趣的:(生产力,服务器)