【付费】帮写一些linux的U盘自动挂载的脚本。
最近正在做一些项目,主要使用的java,但是因为对linux不熟悉,涉及很多深入linux系统的东西,希望找到一位老哥,可以协助写一些脚本以便使用,比如自动识别U盘插拔并挂载或卸载等。所有脚本都付费。也希望建立长期合作关系,协助完成项目中linux的相应部分。
【付费】帮写一些linux的U盘自动挂载的脚本。
最近正在做一些项目,主要使用的java,但是因为对linux不熟悉,涉及很多深入linux系统的东西,希望找到一位老哥,可以协助写一些脚本以便使用,比如自动识别U盘插拔并挂载或卸载等。所有脚本都付费。也希望建立长期合作关系,协助完成项目中linux的相应部分。
引自免费微信小程序:皆我百晓生
为了实现Linux系统的U盘自动挂载,你需要在系统中配置一个监听USB设备插入和移除事件的工具,然后根据这些事件执行相应的挂载或卸载操作。这里推荐使用udisksctl
工具和udev
规则来实现这个功能。以下是详细的步骤:
udisks2
(如果你尚未安装):sudo apt-get update
sudo apt-get install udisks2
或者对于基于RPM的系统(如Fedora、CentOS):
sudo dnf install udisks2
99-automount_usb.rules
的文件,用于定义udev
规则。这个文件应该放在/etc/udev/rules.d/
目录下:sudo nano /etc/udev/rules.d/99-automount_usb.rules
添加以下内容到新创建的文件中,这将确保当U盘插入时自动挂载,并且当U盘移除时自动卸载:
ACTION=="add", SUBSYSTEM=="block", ENV{ID_SERIAL}!="", ENV{ID_BUS}=="usb", RUN+="/bin/bash -c 'sleep 5; /usr/bin/udisksctl mount -b /dev/%k'"
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_SERIAL}!="", ENV{ID_BUS}=="usb", RUN+="/bin/bash -c '/usr/bin/udisksctl unmount -b /dev/%k && sleep 1 && /bin/rm -f /media/usbdrive/%E:/%N'"
# Replace "/media/usbdrive" with the desired mount point directory
# Replace "%E:" and "%N" with appropriate variables to get the drive name
保存并关闭文件。
sudo mkdir -p /media/usbdrive
sudo chmod 777 /media/usbdrive
udevd
服务使规则生效:sudo systemctl restart systemd-udevd
这样,每当有新的USB设备插入时,它会在5秒后自动挂载到/media/usbdrive
目录下。当设备移除时,会等待1秒后卸载并删除挂载点下的对应目录。
注意:这个方法依赖于udisksctl
命令,可能在某些较旧的系统上不可用。在这种情况下,可以考虑使用mount
和umount
命令替代。此外,这个设置可能会覆盖现有的U盘挂载策略,如果有其他不同的需求,可能需要调整规则。
如果你还有其他Linux相关的任务需要处理,例如编写脚本来监控特定的文件系统变化,或者进行其他自动化任务,都可以随时联系我,我会提供相应的帮助。