有没有办法检查另一个挂载命名空间的文件和目录?
setns(2)系统调用似乎能够将线程移动到另一个命名空间,但如果此功能尚未内置到程序(shell、文件服务器等)中,则似乎需要执行新进程。而且由于目标挂载命名空间可能不包含所需的二进制文件,这是一个问题。
编辑:
我正在寻找的是一种“用户友好”的方式来访问命名空间中的文件。例如,我可以想象有一种方法可以将命名空间挂载在主机系统的某处。但因为我不知道什么是可能的,所以我在问。
服务器的磁盘(或 RAID 1 中的 2 个磁盘)已满 (96 %)。我想添加一个新的 SSD(不属于 RAID)。
\n\n我不明白的是如何或在哪里安装它,所以我可以在现有结构中无缝地使用它。
\n\n如何在 Linux 中将子目录挂载到硬盘上?并不会让我变得更聪明,即使这可能是我正在寻找的。
\n\n我有类似的东西/var/www/vhosts/example.com/httpdocs/images/dirA。\n因为网络服务器(Apache 和 nginx)可以立即访问新磁盘上的文件对我来说很重要,所以我想我必须将其安装在其中的某个位置,/var/www/vhosts/example.com/httpdocs/这样它就不会以有限的方式结束使用权。
那么我可以在那里创建/var/www/vhosts/example.com/httpdocs/images/dirB并安装新磁盘吗?它会以任何方式影响 RAID 吗?
或者将其安装在“外部”可能更明智,例如/newDiskX然后符号链接/newDiskX到/var/www/vhosts/example.com/httpdocs/images/dirB?
我从https://unix.stackexchange.com/questions/198542/what-happens-when-you-mount-over-an-existing-folder-with-contents了解到的是我无法安装它直接/var/www/vhosts/example.com/httpdocs/images/dirA没有复杂性或实际上获得了更多的整体空间。
我的问题是,我只有“一次机会”,我自己做不到;我必须告诉我的托管商安装新磁盘以及在哪里安装/绑定/链接它。
\n\n编辑:
\n\n为了形象化它,这里是当前/计划的结构:
\n\n/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 A/ (existing on old disk)\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 B/ (existing on old disk, access point for Apache etc.)\n| | \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 C/ (existing on old disk)\n| | | \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file.tmp (existing …Run Code Online (Sandbox Code Playgroud) 这是我每次设置服务器时都会遇到的这些问题之一:-(
我有一个 Ubuntu 服务器 16.04 并且想自动挂载一个 samba 共享。
在我的 /etc/fstab 我有条目:
//10.10.2.2/share /media/share cifs defaults,_netdev,noauto,nofail,username=user,passwd=pass 0 0
Run Code Online (Sandbox Code Playgroud)
当我执行
sudo mount -a
Run Code Online (Sandbox Code Playgroud)
我没有收到错误消息,但没有安装共享:-(
然而,最有趣的部分是,如果我做一个
sudo mount /media/share
Run Code Online (Sandbox Code Playgroud)
共享已挂载
我以前在使用 samba 时遇到过各种问题,但这种行为对我来说是新的。有人知道如何解决这个问题吗?
我在一台 Linux 机器上尝试通过我的 Active Directory 用户名在大型网络中挂载 SMB 共享:
mount -t cifs -o username=myuser,domain=mydomain //server/share /mount/path
Run Code Online (Sandbox Code Playgroud)
密码+成功安装后我尝试touch /mount/path/test.txt,但权限被拒绝。如此多的搜索结果(就赞成票而言,这sudo mount是最大的)表明,由于使用写入权限,因此仅授予 root 而不是您的普通用户。但就我而言,我是root,因为我首先使用sudo -i,一切都发生在 root 控制台上。/mount/path属于 root 及其下面的所有内容(已安装驱动器的内容)。我已经尝试解决这个问题 2 个小时了,但我陷入了困境。有谁知道为什么我什至不能以 root 身份写入驱动器?
我正在测试 k8s 调试功能,包括调试 pod 和临时容器,但我无法弄清楚如何将“目标”pod 的文件系统正确映射到调试容器中。
我想使用递归绑定挂载 * 链接两个不相交的挂载命名空间,以便容器 A 将容器 B 的根视为容器 B 的根,/containerB反之亦然。包括所有卷和其他安装。
目标是让目标 pod 的完整文件系统树,包括映射到调试容器的子目录(例如 )的卷和其他挂载/run/target。如果目标容器挂载持久卷,则应映射这些挂载点,因此,例如,如果目标容器具有,/data则调试容器应具有已安装的/run/target/data.
或者,可以将调试容器文件系统树“注入”到目标容器中,因此可以在调试容器/run/debug时公开可用的调试容器根。nsenter包括它的像 procfs 这样的挂载,所以它的功能齐全。
我希望能够例如调试容器提供的gdb -p $target_pid位置。为此,必须能够从目标容器中找到进程可执行文件。gdbgdb
我探索了一些解决方法。但我真正想做的是将mount --rbind目标容器 FS 树转移到来宾上,反之亦然。给定一个定制的特权调试容器,例如:
apiVersion: v1
kind: Pod
metadata:
name: debugcontainer
namespace: default
spec:
nodeName: TARGET_NODE_NAME_HERE
enableServiceLinks: true
hostIPC: true
hostNetwork: true
hostPID: true
restartPolicy: Never
containers: …Run Code Online (Sandbox Code Playgroud) 我有一个带有外部 USB 硬盘驱动器的 Ubuntu 服务器。
我基本上只想在插入硬盘驱动器时运行脚本。
实现这一目标的最佳方法是什么?
我正在尝试在 /dev/sdf 上挂载一个设备,我希望在系统启动后为所有用户挂载它。它是 Ubuntu 10.04 服务器。
我认为答案类似于 /etc/rcS.d ,但我不能完全确定......
非常感谢,克里斯。
我们有一个外部 USB 2 驱动器,用作我们配置的备份驱动器。我们使用rsnapshot进行备份。它使用一些标准命令来管理快照:
rm -rf: 删除过期的快照mv:将旧快照向下移动一个插槽cp -al: 将上一个快照复制到新插槽rsync -a --delete --numeric-ids --relative: 同步新快照正如您在下面的日志中看到的那样,大部分时间都花在了rm -rf和cp -al步骤上:
[25/Dec/2010:14:00:02] rsnapshot hourly: started
[25/Dec/2010:14:00:02] echo 21012 > /var/run/rsnapshot.pid
[25/Dec/2010:14:00:02] rm -rf /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.4/ /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.3/ /mnt/extdrive/snapshots/hourly.4/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.2/ /mnt/extdrive/snapshots/hourly.3/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.1/ /mnt/extdrive/snapshots/hourly.2/
[25/Dec/2010:14:15:48] cp -al /mnt/extdrive/snapshots/hourly.0 /mnt/extdrive/snapshots/hourly.1
[25/Dec/2010:14:23:32] rsync -a --delete --numeric-ids --relative /etc /mnt/extdrive/snapshots/hourly.0/sm4/
[25/Dec/2010:14:23:52] touch /mnt/extdrive/snapshots/hourly.0/
[25/Dec/2010:14:23:52] rm -f /var/run/rsnapshot.pid
[25/Dec/2010:14:23:52] …Run Code Online (Sandbox Code Playgroud) 几个月前,我在我的一个分区上创建了一个 ext3 文件系统。我收到以下消息:
"mkfs.ext3 /dev/sddx; system will be checked every 20 mounts or 180 days; use
tune2fs -c or -i to override".
如何确定此文件系统已挂载多少次?
我试图在/mnt/mail2 上挂载/dev/sdi,但我错误地按回车键太早并挂载在/mnt/mail 上,而/mnt/mail 已经挂载在/dev/sdd 上。
# mount -o noatime /dev/sdi /mnt/mail
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,执行 df 时,显示两个分区都已挂载。
# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sdd 163G 280M 154G 1% /mnt/mail
/dev/sdi 163G 280M 154G 1% /mnt/mail
Run Code Online (Sandbox Code Playgroud)
使用 umount 它首先删除 /dev/sdi,第二次删除 /dev/sdd。
需要注意的一点是,df 显示的空间实际上是新的 sdi 磁盘之一,而单独挂载 sdd 时 df 说:
/dev/sdd 148G 148G 0 100% /mnt/mail
Run Code Online (Sandbox Code Playgroud)
这种奇怪行为的任何原因?如果我没有立即注意到并写了一些数据,它会不会破坏我的数据?
mount ×10
linux ×6
ubuntu ×3
filesystems ×2
namespaces ×2
backup ×1
cifs ×1
docker ×1
ext3 ×1
fstab ×1
kubernetes ×1
linux-kernel ×1
rsnapshot ×1
samba ×1
scripting ×1
usb ×1