专栏首页祥的专栏[Linux]解决FTP服务器不支持软连接目录

[Linux]解决FTP服务器不支持软连接目录

原创文章

文章目录
  • @[toc]

  • 1.原因
  • 2. 情况说明
  • 3. 将硬盘挂在到FTP服务器共享目录中
    • 3.1. 新建目录
    • 3.2. 挂载目录
      • 说明
    • 3.3. 取消挂载
      • 取消挂载可能出现的问题

1.原因

我有一个移动硬盘,里面存放了许多电影,有时候插在做FTP服务器Linux电脑上,想直接用iPad去访问移动硬盘,所以必须要把移动硬盘挂在FTP服务器上(不挂在Samba服务器的原因是,我的FTP服务器 只读不可写,而Samba服务器 可读可写),所以就有了这个需求。

但是FTP服务器不支持软连接,所以只能另寻他法了。

2. 情况说明

我的FTP服务器的共享目录是 /srv/qfxFtp/

我的 移动硬盘 的挂在点目录是 /media/qfx/Qfx_01/,具体情况如下所示:

root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            3.9G     0  3.9G    0% /dev
... ...
/dev/sdc1       932G  847G   86G   91% /media/qfx/Qfx_01

root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# ls -lF /media/qfx/Qfx_01/
总用量 32
drwxrwxrwx 1 qfx qfx  4096 10月 18 17:39 电视剧/
drwxrwxrwx 1 qfx qfx 28672 11月  2 22:50 电影/

3. 将硬盘挂在到FTP服务器共享目录中

3.1. 新建目录

FTP服务器共享目录中新建一个目录用于挂载移动硬盘的目录,这里这个目录我就直接起名为Q_rmDisk

root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# mkdir Q_rmDisk
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# ls -lF
总用量 3360
...
drwxrwxrwx 2 root root    4096 2月  23 22:58 Q_rmDisk/
...

3.2. 挂载目录

mount --bind 源目录 目标目录
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# mount --bind /media/qfx/Qfx_01/ /srv/qfxFtp/Q_rmDisk/

root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# cd Q_rmDisk/
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp/Q_rmDisk# ls -lFa
总用量 40
drwxrwxrwx 1 qfx    qfx     4096 11月  2 22:42 ./
drwxr-xr-x 6 qfxFtp qfxFtp  4096 2月  23 23:29 ../
drwxrwxrwx 1 qfx    qfx     4096 10月 18 17:39 电视剧/
drwxrwxrwx 1 qfx    qfx    28672 11月  2 22:50 电影/

说明

vsftpd本身不支持软连接,而在用FTP共享的时候又不想移动文件位置,这是一个变通方案。 Linux内核从2.4.0开始支持把一部分文件系统挂载到文件系统中的其他位置,mount命令的--bind选项正好提供了这个功能。 可以把需要共享的文件夹media/qfx/Qfx_01/挂载到FTP目录中的一个子目录/srv/qfxFtp/Q_rmDisk/。这个目录对于vsftpd而言是一个正常文件系统的目录,于是就可以被共享了。当不需要共享目录时,直接umount即可。

mount --bind命令本身支持单个文件的挂载,可以把目标文件挂载到另外一个文件上,起到类似于软链接的功能。同目录的挂载类似,这也是vsftpd支持的。

3.3. 取消挂载

强行解除挂载

umount  /srv/qfxFtp/Q_rmDisk/

取消挂载可能出现的问题

取消挂载/srv/qfxFtp/Q_rmDisk/时出现 umount: /srv/qfxFtp/Q_rmDisk/: device is busy

原因是因为有程序在使用 /srv/qfxFtp/Q_rmDisk/ 目录,我们可以使用 fuser 命令查看挂载目录被哪些进程占用:

fuser -kvm  /srv/qfxFtp/Q_rmDisk/

然后 kill 就可以了。

命令:kill -9 pid

如果还是不行,还可以强行解除挂载

# 强行解除挂载
umount -l /srv/qfxFtp/Q_rmDisk/ 

OK! 以上,Enjoy~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 介绍一款好用的linux本地与远程数据传输工具

    我们租用云主机或在本地使用虚机建立一台CentOS之类的Linux系统后,一般需要安装很多组件,但用yum安装速度较慢;或者本地电脑有一些已下载...

    希望的田野
  • 入门|图像处理技术

    图像增强技术的作用,简单点说,就是通过对图像进行加工处理,使图像能更好的在其他领域起作用,比如人脸识别,图像分类等人工智能领域,又或者是在通信领域,通过加工恢复...

    算法与编程之美
  • 入门|图像增强技术

    图像增强技术的作用,简单点说,就是通过对图像进行加工处理,使图像能更好的在其他领域起作用,比如人脸识别,图像分类等人工智能领域,又或者是在通信领域,通过加工恢复...

    算法与编程之美
  • 【npm】利用npm安装/删除/发布/更新/撤销发布包

    什么是npmnpm是javascript的包管理工具,是前端模块化下的一个标志性产物 简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率 1.从社...

    外婆的彭湖湾
  • npm 和 yarn 你选哪个?[每日前端夜话0x100]

    每个团队都必须在开发过程中做出各种决定。其中通常会涉及到 yarn,npm 或其它用于构建和打包 javascript 代码的工具。一些开发人员渴望朝着某个方向...

    疯狂的技术宅
  • 利用健康大脑的经颅磁刺激识别能够预测中风后语言能力是否异常的大脑损伤区域

    伦敦大学学院神经病学研究所(Instituteof Neurology, UCL)的DietgoL. Lorca-Puls等人在BRAIN期刊上发表的一项研究使...

    用户1279583
  • circos 可视化手册- images 篇

    image这个block是circos内置的block之一,其配置文件为软件安装目录下的etc/image.conf。内容为

    生信修炼手册

扫码关注云+社区

领取腾讯云代金券