上电自动挂载NFS

如果你希望通过一个自定义脚本来实现挂载,并使用 systemd 服务来管理这个脚本,可以按照以下步骤操作。这种方法更加灵活,适合需要在挂载前后执行额外操作的情况

步骤 1:创建挂载脚本

创建脚本文件:
在 /usr/local/bin/ 目录下创建一个挂载脚本,例如 mount_nfs.sh:

sudo vim /usr/local/bin/mount_nfs.sh

编写脚本内容:
在脚本中添加挂载命令和其他需要的操作。例如:

#!/bin/bash

# 定义 NFS 服务器和共享目录
NFS_SERVER="192.168.1.100"
SHARE_DIR="/shared"
MOUNT_POINT="/mnt/nfs"

# 检查挂载点是否存在
if [ ! -d "$MOUNT_POINT" ]; then
    echo "挂载点 $MOUNT_POINT 不存在,正在创建..."
    sudo mkdir -p "$MOUNT_POINT"
fi

# 挂载 NFS 共享
echo "正在挂载 $NFS_SERVER:$SHARE_DIR$MOUNT_POINT..."
sudo mount -t nfs -o nolock,vers=3 "$NFS_SERVER:$SHARE_DIR" "$MOUNT_POINT"

# 检查挂载是否成功
if mount | grep "$MOUNT_POINT" > /dev/null; then
    echo "挂载成功!"
else
    echo "挂载失败!"
    exit 1
fi

赋予脚本执行权限:

sudo chmod +x /usr/local/bin/mount_nfs.sh

步骤 2:创建 systemd 服务

创建服务文件:
在 /etc/systemd/system/ 目录下创建一个服务文件,例如 mount_nfs.service:

sudo vim /etc/systemd/system/mount_nfs.service

编写服务内容:
在服务文件中添加以下内容:

[Unit]
Description=Mount NFS Share via Script
Requires=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mount_nfs.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

ExecStart:指定要运行的脚本路径。
Restart=on-failure:如果挂载失败,自动重试。
RestartSec=5:重试间隔为 5 秒。

保存并退出。

步骤 3:启用并启动服务

重新加载 systemd 配置:

sudo systemctl daemon-reload

启用服务:

sudo systemctl enable mount_nfs.service

启动服务:

sudo systemctl start mount_nfs.service

检查服务状态:

sudo systemctl status mount_nfs.service

如果服务运行正常,你会看到类似以下的输出:

● mount_nfs.service - Mount NFS Share via Script
   Loaded: loaded (/etc/systemd/system/mount_nfs.service; enabled; vendor preset: enabled)
   Active: active (running) since ...

步骤 4:测试挂载

检查挂载点:
运行以下命令查看挂载是否成功:

df -h
mount | grep nfs

验证文件访问:
尝试访问挂载点目录,例如:

ls /mnt/nfs

步骤 5:重启系统验证

重启系统后,检查挂载点是否自动挂载:

sudo reboot

重启后,运行以下命令验证:

df -h | grep nfs

注意事项

脚本调试:
如果挂载失败,可以手动运行脚本调试:

sudo /usr/local/bin/mount_nfs.sh

日志查看
如果服务运行失败,可以通过以下命令查看日志:

journalctl -u mount_nfs.service

卸载脚本:
如果需要卸载挂载点,可以创建一个类似的卸载脚本,并在服务中通过 ExecStop 调用。

通过以上步骤,你可以使用自定义脚本和 systemd 服务来实现自动挂载。这种方法非常适合需要复杂挂载逻辑的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值