我正在为异地备份设置系统。它是一个连接到两个外部硬盘的树莓派。数据并行写入两个磁盘(这不是 RAID 1,而是备份服务单独写入数据的两个磁盘)。
这些文件将主要被写入,很少被读取。有两种模式:大多数情况下,每分钟会写入几个小文件。在某些情况下,会以 30 MB/s 的速度(如果 Raspberry Pi 能够维持这样的速度)大量写入大文件,持续时间为几分钟到几小时。
大约有 1,000,000 个文件,总共使用 2.5 TB。最大的文件将在 10 GB 左右,而且数量很少;大多数将是从几千字节到几十兆字节。为了避免 Linux 的目录包含过多文件的问题,data 目录最多存储 32 个子目录,而每个子目录最多存储 32 个子目录,依此类推,6 个级别更深,将任何目录的文件/目录数量限制为 32 个。
该设备将通过 UPS 供电,但仍然存在写入数据时无意中拔下/关闭它的风险。虽然在设备关闭/崩溃时丢失正在写入的文件不是问题,但如果它影响其他文件,则将是一个严重的问题。
数据库 (PostgreSQL) 也可能存储在这些磁盘上(尽管我还没有做出选择是将其存储在那里还是使用 Raspberry Pi 的 SD 卡并在硬盘上进行每小时备份)。
使用 XFS 会有什么好处吗?
会不会有什么缺点?
从我读到的内容来看,XFS 在 ext4 显示其局限性的情况下具有优势,例如处理 EB 级数据时,这并不完全是我的情况。几年前 XFS 似乎也不太稳定,但现在似乎不再如此。
那么,这对我来说很重要,还是我的情况太普通而无法证明特别偏爱文件系统?
当谈到passwd/user-password-cryptedpreseed 文件中的语句时,大多数示例使用 MD5 哈希。例子:
Run Code Online (Sandbox Code Playgroud)# Normal user's password, either in clear text #d-i passwd/user-password password insecure #d-i passwd/user-password-again password insecure # or encrypted using an MD5 hash. #d-i passwd/user-password-crypted password [MD5 hash]
一些来源表明也可以使用 SHA-512:
尝试使用这样的散列密码:
Run Code Online (Sandbox Code Playgroud)$ mkpasswd -m sha-512[...]
然后在您的预置文件中:
Run Code Online (Sandbox Code Playgroud)d-i passwd/user-password-crypted password $6$ONf5M3F1u$bpljc9f1SPy1w4J2br[...]
这比MD5略好,但仍然不能很好地抵抗蛮力和彩虹表。
我可以使用哪些其他算法?例如,被PBKDF2支持,还是只能由所使用的算法/etc/shadow,即MD5,河豚,SHA-256和SHA-512?
目前,ffmpeg在使用稳定版本的 Debian 和 Ubuntu 时,APT 软件包中缺少。
有许多资源(来自 SuperUser 的示例,来自 Debian 文档的另一个和来自 AskUbuntu 的一个)解释了如何以不同于简单的apt-get install ffmpeg.
我想知道为什么包首先不在那里?
据我所知,它avconv是Debian 类似发行版的一个分支,ffmpeg并且是事实上的标准。同时,ffmpeg并没有被放弃:尽管该项目的负责人已离开该项目,但该网站并未提及以盈利为目的关闭该项目。avconvffmpeg
所以:
为什么ffmpeg从 APT 包中明确删除,而不是保留它并简单地添加avconv?
是否有理由(除了安装变得更加困难之外ffmpeg)停止使用它?
看完问题当你输入“ls -a”时,“.”的意义是什么?和 ”..”?,我有一个类似的。
为什么要显示.?我的意思是,是否有任何目录cd .不起作用?用户每次看到这条线有什么帮助?
我在做的时候一直认为:
dd if=/dev/sdx of=/dev/sdy
Run Code Online (Sandbox Code Playgroud)
命令完成后显示的报告,例如:
79304319+0 records in
79304319+0 records out
40603811328 bytes (41 GB) copied, 459.645 s, 88.3 MB/s
Run Code Online (Sandbox Code Playgroud)
包含对应于以下最慢速度的速度:
也就是说,如果我将数据从读取速度为 5 MB/s 的 USB 驱动器复制到 SSD,dd实际上会报告 5 MB/s,与 SSD 的速度无关。
在实践中,我正在复制连接到 USB 2 的磁盘(检查了两次,手册上说它是 USB 2.0,甚至精确到 480 Mbps 的连接速度),并注意到dd报告的速度从 65 到 88 MB/s 不等,这高于USB 2.0的最大速度 60 MB/s。
那里发生了什么?
dd读取速度和写入速度相加后显示的速度(这意味着实际速度约为40 MB / s,这更有意义)?
附加信息:我正在制作一个硬盘的副本,该硬盘出现越来越多的坏扇区,以便我可以进行克隆试验。复制整个磁盘后,报告的速度确实比预期的要高:
3902854784+0 records in
3902854784+0 records out
1998261649408 bytes (2.0 TB) copied, 26040.5 s, 76.7 MB/s …Run Code Online (Sandbox Code Playgroud) 我曾经通过 PXE 部署 Debian 10,而且很有效。
现在 Debian 11 已经发布了,我决定对其做同样的事情,但是当它尝试配置网络时安装失败了:
网络自动配置失败
您的网络可能未使用 DHCP 协议。或者,DHCP 服务器可能速度较慢或某些网络硬件无法正常工作。
有几个奇怪的事情:
机器在刚加载时就可以访问 DHCP。我可以在 DHCP 服务器的日志中看到 DHCPDISCOVER、DHCPOFFER、DHCPREQUEST 和 DHCPACK 消息。此外,机器使用正确的IP地址与TFTP服务器通信(以检索pxelinux.0等)。所以,毕竟,机器确实访问了 DHCP,并访问了本地网络,但随后神奇地忘记了它。
该机器有两个适配器:enp1s0和enp111s0。如果在安装过程中,我带了控制台和 I ip link set enp111s0 down; ip addr add 192.168.1.50/24 dev enp1s0,那么我可以访问本地网络(但不能访问互联网)。
另外,如果我通过运行指定网关ip route add default via 192.168.1.1 dev enp1s0,我不仅可以访问本地网络,还可以访问互联网。
Debian 11 中发生了什么可以解释这一点?
如何解决连接问题?
我正在尝试while read语法,但有一点我不明白。
重现该问题的最基本场景如下:一个 bash 脚本a.sh调用另一个脚本b.sh并显示由它回显的行:
a.shRun Code Online (Sandbox Code Playgroud)#!/bin/bash while read line; do echo "<<$line>>" done <<< `./b.sh`
b.shRun Code Online (Sandbox Code Playgroud)#!/bin/bash echo "Hello" echo "World"
运行b.sh按预期给出:
#!/bin/bash
while read line; do
echo "<<$line>>"
done <<< `./b.sh`
Run Code Online (Sandbox Code Playgroud)
另一方面,当我运行时a.sh,输出是:
#!/bin/bash
echo "Hello"
echo "World"
Run Code Online (Sandbox Code Playgroud)
虽然我希望它是:
Hello
World
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在 Ubuntu 上创建虚拟机时,我可以在虚拟网络接口的三种设备模型之间进行选择:virtio、e1000和rtl8139。
三者有什么区别?换句话说,我在选择设备型号时应该考虑什么?
谷歌搜索“virtio vs e1000 vs rtl8139”并没有多大帮助。结果的前两页充满了官方文档,不多说,博客文章归结为“使用选项N,因为我尝试过它,它很棒”。我发现的唯一有用的资源是一个讨论,它似乎表明e1000很慢,但与virtio相比具有最大的兼容性。讨论似乎暗示e1000在某些时候比rtl8139更受欢迎,但没有说明原因。
当安装 Debian 桌面并使用 GNOME 时,应用程序菜单包含一些看起来像名为Utilities 的目录(或分组)的内容。里面有大约十几个应用程序,例如计算器和系统监视器。
这个分组怎么称呼?
我希望能够创建自己的目录,但我不知道它是如何调用的,所以我不知道要搜索什么。
甲文件的URI方案使得能够以指定的URI到本地存储的文件,如file:///home/demo/sample。
可以用来指定stdin吗?
例如,使用 CURL:
curl file:///home/demo/sample
Run Code Online (Sandbox Code Playgroud)
显示文件的内容;
echo "Hello" | curl file:///dev/fd/0
Run Code Online (Sandbox Code Playgroud)
给出一个空结果,而我希望它显示“你好”。顺便一提:
echo "Hello" | cat /dev/fd/0
Run Code Online (Sandbox Code Playgroud)
实际上向输出显示“Hello”。
我应该把什么放在file://目标之后stdin?
上下文:我正在试验Motion,它能够从 HTTP URI 或指定为 的文件中读取数据file://,但似乎没有直接从中读取视频流的选项stdin(以及近两年前提出的相关问题从未被回答)。我希望能够欺骗应用程序认为它读取了一个文件,而实际上它正在从ffmpeg.
debian ×2
bash ×1
benchmark ×1
cd-command ×1
dd ×1
disk-usage ×1
ffmpeg ×1
filesystems ×1
gnome ×1
hashsum ×1
kvm ×1
networking ×1
password ×1
performance ×1
pipe ×1
preseed ×1
pxe ×1
qemu ×1
quoting ×1
stdin ×1