我正在创建一个新的基本规则
/etc/udev/rules.d/10-myrule.rules
Run Code Online (Sandbox Code Playgroud)
包含:
KERNEL!="sdb*", GOTO="auto_mount_end"
ACTION=="add", RUN+="/usr/bin/mount /dev/sdb1 /media"
LABEL="auto_mount_end"
Run Code Online (Sandbox Code Playgroud)
我保存、重新启动并插入了一张 SD 卡(由 识别/dev/sdb1,我看到它dmesg),但没有任何反应。当我手动执行时mount /dev/sdb1 /media,它可以工作。
如何对这样的udev规则进行故障排除/调试?
注意:我使用的是 ArchLinux,但在任何发行版上都应该是一样的?
我有:
我通过 SSH 在 IP 203.0.113.0 端口 1234 上连接的 Linux 服务器
一台家用电脑(在路由器后面),公共 IP 198.51.100.17,是 Debian 或 Windows+Cygwin
让文件夹/home/inprogress/ 同步(双向)最简单的方法是什么,有点像rsync,但是使用文件系统观察器,以便每次修改文件时,它都会立即复制到另一侧?(即无需手动调用同步程序)
我正在寻找命令行/无 GUI 解决方案,因为服务器是无头的。
是否有 Linux/Debian 内置解决方案?
假设abc我的本地计算机上有一个 4 GB 的文件。我已通过 SFTP 将其上传到远程服务器,花了几个小时。
现在我在本地稍微修改了该文件(最大可能为 50 MB,但不是此文件中的连续字节),并将其保存到abc2. 我还将原始文件保存在abc本地计算机上。
如何计算的二进制差异abc和abc2?
应用:
我只能向patch远程服务器发送一个文件(可能最大 100MB),而不是重新上传整个abc2文件(又需要几个小时!),并且仅abc2在远程服务器上重新创建。abcpatch
在本地,与其浪费 8 GB 来备份abcand abc2,我只能保存abc+ patch,因此只需要 < 4100 MB。
这该怎么做?
PS:对于文本,我知道diff,但在这里我正在寻找适用于任何原始二进制格式的东西,它可以是 zip 文件或可执行文件,甚至其他类型的文件。
PS2:如果可能,我不想使用rsync;我知道它可以以有效的方式复制两台计算机之间的更改(不重新发送未更改的数据),但在这里我真的想要一个patch文件,如果我同时拥有abc和patch.
我想为所有将永远连接的 ALSA 设备设置一次默认音量。
当然,我可以做amixer ...甚至alsamixer修改当前可用声卡的音量。
但我真的很想修改默认音量,即使是将来添加的声卡。
我应该在哪个配置文件中设置这个默认音量?
我见过,/var/lib/alsa/asound.state但内容特定于当前连接的声卡。我想要的是一个适用于任何将连接的声卡的解决方案。
上下文:为什么我想要这个?我正在为我的项目SamplerBox提供一个现成的 Debian 映像。用户 #1 可能使用计算机的内置声卡,用户 #2 可能有一个 USB DAC,用户 #3 可能有另一个声卡......
我想提供一个默认的 -3dB 音量,适用于任何 ALSA 声卡人本来可以...
注意:我重新安装了一个全新的系统,似乎默认情况下,所有设备的音量都是 -20dB:


做的时候:
for i in {1..30}; do echo $i; grep $i/Aug access.log | sort -u | wc -l; done;
Run Code Online (Sandbox Code Playgroud)
问题是它是这样的:
1/Aug # should be 01/Aug
2/Aug # should be 02/Aug
...
Run Code Online (Sandbox Code Playgroud)
如何for i in {1..30}给 01、02、03 而不是 1、2、3?
当你这样做时:
$ whois stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
你的Linux是不是先做DNS查询,找到stackoverflow.com的IP,然后直接在那里查询信息?
或者它是否询问“root”whois 服务器(“root whois 服务器”的 IP 是硬编码在 Linux 发行版中,以类似于的方式/etc/bind/db.root?),然后委托给另一个提供信息的 whois 服务器?
什么是连接流?
my computer doing `whois ...` ---> root whois server ---> another whois server ---> information
Run Code Online (Sandbox Code Playgroud)
或者
my computer doing `whois ...` ---> DNS server (?) ---> ... ?
Run Code Online (Sandbox Code Playgroud) 在标准 Debian 上,如何用自定义 JPG 或 PNG 图像替换 Linux 启动时显示的所有内容,直到带有 GUI 的 Python 应用程序启动?
是否有一种通用的方法可以CustomSplash.jpg以无缝的方式用图像替换启动消息显示,没有闪烁,用于:
GRUB(我已经在/etc/default/grub: 中使用了它GRUB_HIDDEN_TIMEOUT=0,GRUB_HIDDEN_TIMEOUT_QUIET=true但我认为仍然有一个非常短的 GRUB 启动画面)
这些日志消息:
开始屏幕 X11/Xfce4(现在我已经启用了自动登录,就像在Debian 9.2.1 命令行上自动登录一样,我startxfce4手动进行,但最终我会创建一个systemd服务来启动xfce)
即在 Python 应用程序启动之前的所有内容(使用 Tkinter 或 wxPython)
对于嵌入式计算机,我只想拥有自定义启动画面,然后是应用程序。(我可能无法删除的唯一内容是 BIOS 初始消息?)。
从 bash 或标准的 linux 命令行工具,如何将文件与密钥进行异或?就像是:
cat my1GBfile | xor my1MB.key > my1GBfile.encrypted
Run Code Online (Sandbox Code Playgroud)
题外话:我知道这个例子的加密很弱,但我只是想知道这是否可以从 bash 或标准的 linux 命令行工具中获得(或者甚至更好:来自 bash 和 cygwin,因为我同时使用 Linux 和 Windows )。
我刚刚friend在我的服务器上创建了一个新用户,目标是将 SFTP 访问权限授予我的一个朋友,以便他可以在那里托管他的网站。
我注意到当用户通过 SFTP 连接服务器时friend,默认文件夹是/home/friend/,但是你可以很容易地出去/home/friend/ 访问服务器上的所有文件,例如/home/anotheruser/website2/config.php!我不要这个。
我被告知将此用户置于“监禁/隔离模式”,因此,在我的默认设置结束时sshd_config:
...
Subsystem sftp /usr/lib/openssh/sftp-server
Run Code Online (Sandbox Code Playgroud)
...我补充说:
Match User friend
ChrootDirectory /home/friend
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
并做了service sshd restart。
然后我根本无法通过 SFTP 与用户连接服务器friend,哎呀!我也尝试通过替换Subsystem ...,Subsystem sftp internal-sftp但结果是一样的:friend无法再通过 SFTP 连接服务器。
题:
如何通过 SFTP/SSH隔离用户friend,使其无法出门/home/friend/?
注意:我已经阅读了如何使用 chroot Jail 将 SFTP 用户限制到主目录,如何将 sftp-only SSH 用户 chroot 到他们的家中? , 等等。
我创建了一个必须永远运行的systemd服务(因为它在我的嵌入式计算机上完成主要工作):
# /etc/systemd/system/samplerbox.service
########################################
[Unit]
Description=Starts SamplerBox
[Service]
Type=oneshot
ExecStart=/root/SamplerBox/samplerbox.sh
WorkingDirectory=/root/SamplerBox/
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是它的实际作用:
# /root/SamplerBox/samplerbox.sh
################################
#!/bin/sh
python /root/SamplerBox/samplerbox.py
Run Code Online (Sandbox Code Playgroud)
我启用了这项服务
systemctl enable /etc/systemd/system/samplerbox.service
Run Code Online (Sandbox Code Playgroud)
它可以工作,并且在启动时启动。
但是,由于我启用了这项服务,所以当我这样做时systemd-analyze,我看到:
Bootup is not yet finished. Please try again later.
Run Code Online (Sandbox Code Playgroud)
此外,我得到的信息表明该服务仍被视为“激活”/启动:
# systemctl status samplerbox
â samplerbox.service - Starts SamplerBox
Loaded: loaded (/etc/systemd/system/samplerbox.service; enabled)
Active: activating (start) since Thu 1970-01-01 00:14:01 UTC; 11min ago
Main PID: 258 (samplerbox.sh)
CGroup: /system.slice/samplerbox.service
ââ258 /bin/sh /root/SamplerBox/samplerbox.sh
ââ260 python /root/SamplerBox/samplerbox.py
Run Code Online (Sandbox Code Playgroud)
如何正确地使服务永远运行?