无法使用python子进程popen挂载文件系统

时间:2016-04-14 18:56:35

标签: python linux subprocess popen

我正在尝试使用python subprocess.popen命令挂载nas文件系统,我正在运行一个脚本来挂载文件系统。一些脚本如何无法挂载文件系统。

我的剧本:

self.mountSrc  = subprocess.Popen('mount'+' '+ self.src_m[l], shell=True)

print self.mountSrc

if self.mountSrc==0:

   print "Mounted filesystem:"+ self.src_m[l]

我的脚本输出:

Mounting: Source Mount Point:/rsyncTesting/source/share1
Starting:[................................................... ] Done!

mount: can't find /rsyncTesting/source/share1 in /etc/fstab or /etc/mtab
1

我在运行mount命令之前更新/ etc / fstab中的文件系统路径。此外,我可以从命令行以root用户身份手动挂载文件系统。

slcnas888:/export/rsyncScriptProject_Source/rsyncShare1/.zfs/snapshot/SR_0000-0000000_Refresh_rsyncShares_RSYNC_PROJ_exp13April16 / rsyncTesting / source / share1

1 个答案:

答案 0 :(得分:0)

我刚刚修改了mount命令以包含挂载点的名称,
mount /absolute-nas-fs-path /mount-point而非mount /absolute-nas-fs-path

我观察到在linux中,当我们向/etc/fstab文件添加条目时,运行mount <mount point path>可以正常运行,但是在python子进程中我们需要同时传递文件系统的绝对路径作为命令参数中的挂载点。

# self.src_fs[l] is an item from my list of filesystem paths.
# self.src_m[l] is an item from my list of mount points.
self.mountSrc = subprocess.Popen('mount ' + self.src_fs[l] + ' ' + self.src_m[l], shell = True)
print self.mountSrc
if self.mountSrc == 0:
    print "Mounted filesystem:" + self.src_m[l]