根据手册页,xdg-open将使用用户配置的应用程序打开一个文件。但是,该应用程序实际上是如何确定的?我看不到与 关联的配置文件xdg-utils,那么我的设置存储在哪里以及如何修改它们?看到一个简单的 PNG 文件如何使用 Wine 打开 Internet Explorer,我需要更改这些设置。
我正在尝试确定是否使用 ZFS 在 FreeBSD 中支持 xattrs,或者更确切地说,支持扩展到什么程度。我读过一些相互矛盾的信息。
zfs get xattr将其列为on (default)了/,/usr和/var,但off (temporary)对所有其他数据集,包括上面提到的那些孩子们。zfs set xattr=on zroot/usr/home我收到消息
property 'xattr' not supported on FreeBSD: permission denied.
zfs手册页:
xattrFreeBSD 目前不支持该属性。
setextattr,getextattr而且lsextattr似乎工作得很好。rsync --fake-super,并且可以使用lsextattr和查看其数据getextattr。目前,我的印象是 zfs 上的扩展属性在实践中起作用,但是xattr控制它们使用的属性不像在其他 zfs 发行版中那样起作用。但在我相信大量备份数据可以rsync --fake-super …
我的局域网上有一台 Debian 机器作为其他机器的备份服务器。它有四个硬盘驱动器组合成一个软件 RAID 5 md 设备,在那个 LVM 上,在那个 btrfs 上。使用 rsync 进行备份,对于大型文件系统需要一个多小时。很长一段时间以来,我一直认为我对此无能为力。
然而,最近我注意到传输两端的硬盘活动非常不同。虽然发送端运行 Gentoo 并且主要使用 ext4,几乎没有任何磁盘 IO,但接收端一直很忙。由于大多数数据不会在传输之间发生变化,我认为元数据读取应该构成大部分数据。但是,如果在 btrfs 中读取 inode 比在 ext4 中读取索引节点的工作量大,我会感到非常惊讶。
iotop 确认接收端的磁盘读取速度约为 1-4 MB/s,而发送端只有偶尔的 0.5 MB/s 突发。
我的问题是,谁能解释一下这里发生了什么?如果可能的话,最好有一些如何解决问题的指示。
也许我可以使用一些 btrfs 调整标志或类似的东西。我在备份服务器上需要一个具有快照功能的 FS,而我尝试使用 FreeBSD 和 ZFS 很快就会导致 FS 不一致,所以我目前看不到 btrfs 的替代品。因此,告诉我使用 ext4 或 zfs 的答案可能会收到赞成票但没有复选标记。
--rsync-path='rsync --fake-super'
--archive # -rlptgoD
--hard-links # detect and preserve these
--acls
--xattrs
--sparse
--noatime # based on patch from samba #7249c1 …Run Code Online (Sandbox Code Playgroud) cp如果目标文件已经存在,有没有办法让(来自 Linux 上的 GNU coreutils)返回一个非零值?
或者是否有任何其他常用的小实用程序并提供此功能?
这在 shell 脚本中很有用,可以自动复制文件而不会意外丢失任何内容,也无需用户交互。通过将副本与原件进行比较可以获得类似的结果,但我希望有一个更简单的解决方案。
我有一个 USB 笔式驱动器,我想把它变成一个可启动的 MBR 设备。但是,在其历史上的某个时刻,该设备上有 GPT,我似乎无法摆脱它。即使我跑mklabel dos进去parted,grub-install仍然抱怨
Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
Run Code Online (Sandbox Code Playgroud)
我不想保留任何数据。我只想清除以前 GTP 的所有痕迹,最好使用一些比 add if=/dev/zero of=…将整个驱动器清零更快的机制。我更喜欢基于终端(命令行或诅咒)的方法,但一些常见且免费的图形工具也可以。
出于备份的目的,我想通过 ssh 链接传输(几个)整个磁盘分区。源是块特殊设备,目标应该是常规文件。但是,常用工具似乎不适合于此:
scp 会抱怨 not a regular filetar 将尝试在目标端重新创建设备 inodersync 说 skipping non-regular file我目前最好的选择是nc通过端口转发,或cat在每个分区的远程端调用一次,这意味着每个分区输入一个密码,除非设置公钥。有没有更优雅的解决方案?
环境可以是任何合理的Linux live系统。目前我碰巧有一个 Debian wheezy,但它不应该太具体。
我经常发现 unix 处理文件权限的方法很强大,尤其是与 ACL 结合使用时,但处理起来却很困难。为每个创建的文件正确设置文件模式、组所有权和扩展属性很快就会变得乏味。
是否有任何方法可以用更简单的方法替换这个概念(可能是每个安装),默认情况下文件从其包含的目录继承权限?
我知道这可能会违反许多 POSIX 期望,但另一方面,像 quiet vfat mouts 之类的东西已经无视模式和一些权限更改,因此不应阻止开发新想法。
举个例子,我正在寻找一些我可以确定的东西,只要用户将他的文件放在某个目录中,它就会被给定的组写入和删除,并且只能被世界其他地方读取, 无论用户的 umask 和当前组。
到目前为止我所知道的似乎还不够的原因:
我正在寻找利用 SSD 来加速我的系统的方法。在“ Linux 相当于 ReadyBoost?”(以及为我触发的研究)我了解了bcache、dm-cache和EnhanceIO。所有这三个似乎都能够在 SSD 上缓存读取数据。
但是,除非我遗漏了什么,否则所有三个似乎都在第一次读取时将文件/块/范围/任何内容存储在缓存中。大型顺序读取可能是一个例外,但除此之外,似乎每次读取缓存未命中都会导致某些内容被缓存。我希望缓存能够缓存我经常使用的那些读取。我担心搜索我的所有 maildir 文件的正文或某个大目录中的递归 grep 可能会驱逐我经常阅读的大部分内容。
有没有什么技术可以缓存经常读取的文件,而不是最近读取的文件?建立某种形式的活动集或诸如此类的东西?我想自适应替换可能是一个描述我所追求的术语。
缺少这一点,我想知道将 LVM 用作底层并在其上构建多个支持 bcache 的设备是否有意义。这个想法是,例如邮件读取不会驱逐缓存/usr之类的。每个挂载的文件系统都会有自己的固定大小的缓存,或者根本没有。有没有人有在 lvm 之上使用 bcache 的经验?是否有理由反对这种方法?
也欢迎任何其他建议。但是请注意,我正在寻找可以在 Linux 上用于生产的东西。我觉得 ZFS 及其 L2ARC 功能不属于该类别(目前),尽管如果您确信相反,欢迎您提出这一点。使用 LVM 的原因是我希望能够根据需要调整为各种文件系统分配的空间大小,使用静态分区很痛苦。因此,提议的解决方案也应该提供这种灵活性。
编辑 1:一些说明。
我主要关心的是启动时间。我想看到用于每次启动的所有文件都可以在该 SSD 上轻松访问。而且我宁愿不必担心保持 SSD 同步,例如在软件包升级之后(这在我的 Gentoo 测试中经常发生)。如果我在启动期间不使用的常用数据也最终出现在缓存中,那是一个额外的好处。我目前的工作项目例如将是一个不错的候选人。但我猜我每天使用的文件中有 90% 会在按下电源按钮后的前 5 分钟内使用。这个目标的一个结果是在启动后擦除缓存的方法,就像 ZFS L2ARC 显然所做的那样,不是一个可行的解决方案。
金发姑娘的回答将焦点从缓存插入转移到缓存驱逐。但这并没有改变问题的根本性质。除非缓存跟踪某个项目的使用频率或频率,否则内容可能仍会过早地从缓存中退出。特别是因为我希望这些文件从启动到关闭一直驻留在 RAM 缓存中,因此每次启动时它们只会从磁盘读取一次。我为 bcache 和 dm-cache 找到的缓存驱逐策略,即 LRU 和 FIFO,都会优先驱逐那些启动时文件,而不是在同一工作日读取的其他文件。因此我的担忧。
如果 netcat 连接的输入达到 EOF,如何让其终止 TCP 连接的发送部分?
我有一个(非标准)TCP 服务,它读取所有输入(即直到客户端发送 FIN),然后才开始处理数据并发回回复。我想用来nc与此服务进行交互。但目前回复没有到达控制台nc,并且使用 Wireshark 我可以看到,nc只有在连接退出时才终止连接的发送端(例如,由于超时)。我发现没有命令行选项可以改变这种行为。
我正在为某些事情编写一个非常特别的安装脚本。没有太多的控制结构,基本上只是一个命令列表。我希望用户在执行每个命令之前对其进行确认。有没有办法让 bash 做到这一点,而无需在每个命令前加上 shell 函数名称?
linux ×2
shell-script ×2
acl ×1
backup ×1
bash ×1
bcache ×1
block-device ×1
bsd ×1
btrfs ×1
cache ×1
coreutils ×1
cp ×1
directory ×1
disk ×1
disk-image ×1
filesystems ×1
freebsd ×1
freedesktop ×1
gdisk ×1
gpt ×1
interactive ×1
io ×1
lvm ×1
mbr ×1
mdadm ×1
netcat ×1
parted ×1
performance ×1
permissions ×1
pipe ×1
prompt ×1
rsync ×1
ssd ×1
ssh ×1
tcp ×1
xattr ×1
xdg-open ×1
zfs ×1