AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-59989

Basj's questions

Martin Hope
Basj
Asked: 2024-09-06 16:27:37 +0800 CST

用于禁用 htop 中过多进程的命令行选项

  • 5

默认情况下,htop显示的进程比其他工具(top、ps)多得多。解决方案是H按为什么 htop 中同一标题下列出了许多进程?中提到的,以获取“通常”的较短进程列表。

我们应该使用哪个命令行参数来运行htop以实现这种行为?

command-line
  • 1 个回答
  • 34 Views
Martin Hope
Basj
Asked: 2024-01-31 17:32:41 +0800 CST

递归列出目录中的所有文件,按修改日期排序

  • 5

根据上次修改日期递归地对目录中的文件进行排序的主要答案提供了一种按修改日期递归地排序目录中的所有文件的方法:

find -printf "%TY-%Tm-%Td %TT %p\n" | sort -n

但是它不仅列出文件,还列出目录。如何只列出文件?

bash
  • 1 个回答
  • 37 Views
Martin Hope
Basj
Asked: 2021-12-15 11:50:07 +0800 CST

“systemd-tmpfiles-setup.service”在只读文件系统上运行缓慢

  • 1

在无头嵌入式计算机上(在只读文件系统上启动),我发现这systemd-tmpfiles-setup.service相当慢,并且会阻止其他服务更早启动(我检查过systemctl list-dependencies myservice.service)。

如何在只读文件系统上使其更快?

journalctl -u systemd-tmpfiles-setup.service还确认需要将近 4 秒:

-- Logs begin at Sat 2021-12-11 01:55:43 GMT, end at Sat 2021-12-11 01:58:03 GMT. --
Dec 11 01:55:**43** foo systemd[1]: Starting Create Volatile Files and Directories...
Dec 11 01:55:**47** foo systemd-tmpfiles[149]: **rm_rf(/tmp): Read-only file system**
Dec 11 01:55:47 foo systemd-tmpfiles[149]: symlink(/etc/machine-id, /var/lib/dbus/machine-id) failed: Read-only file system
Dec 11 01:55:47 foo systemd-tmpfiles[149]: symlink(../proc/self/mounts, /etc/mtab) failed: Read-only file system
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'coredump': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.X11-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.ICE-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.XIM-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.font-unix': No such file or directory
Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.Test-unix': No such file or directory
Dec 11 01:55:47 foo systemd[1]: Started Create Volatile Files and Directories.

这是结果systemd-analyze plot:

在此处输入图像描述

systemd boot
  • 1 个回答
  • 266 Views
Martin Hope
Basj
Asked: 2021-12-15 00:33:40 +0800 CST

U盘自动挂载(无头电脑)

  • 1

对于SamplerBox项目,到目前为止,我一直在使用/dev/sda1 /media auto nofail 0 0USB 闪存驱动器在插入无头计算机时自动挂载,另请参阅Auto-mount and auto-remount with /etc/fstab。但这似乎不太可靠,例如,当 USB 闪存驱动器被移除,然后重新插入时。

Debian 中有/dev/sd*/media/哪些轻量级且易于配置的解决方案可以自动挂载每个设备?

  • 如果插入了第二个闪存驱动器,请忽略或安装到另一个文件夹/media2/

  • 如果驱动器被移除(即使没有正确的umount),然后在几分钟后重新插入,它应该再次安装

用例是一个无头设备,最终用户可以在其上插入 USB 闪存驱动器,并且它应该始终被识别(无论他们是否在未经软件许可的情况下移除了以前的 USB 闪存驱动器)。

mount usb
  • 1 个回答
  • 1004 Views
Martin Hope
Basj
Asked: 2021-11-13 02:11:01 +0800 CST

如果出现错误,请重新启动并重新启动脚本

  • 0

我有一个脚本(不是我写的,我无法修改它)必须运行数天,有时会失败(退出并出现错误)。

在这种情况下,我所要做的就是重新启动服务器(目前没有更好的解决方案),然后重新启动脚本。目前我这样做:

  • 通过 SSH 登录

  • screen -S job

  • ./myscript.sh开始工作(假设这个脚本只包含:dothis并且这个过程可能会因错误而退出)

  • CTRL A,D与屏幕分离

  • ……等几个小时……

  • 登录,使用 恢复屏幕screen -r job。

    如果仍在运行,请分离并稍后返回。
    如果脚本失败,sudo reboot请从第 1 步开始,以使长期作业继续进行。

如何在没有人工干预的情况下做到这一点?

如果脚本存在错误,如何自动执行此操作并让服务器自动重新启动,然后重新启动脚本?

shell-script gnu-screen
  • 1 个回答
  • 541 Views
Martin Hope
Basj
Asked: 2021-09-23 03:41:09 +0800 CST

在邮件投递过程中,MTA、MDA、POP/IMAP如何相互连接?

  • 1

我已经阅读了为什么要使用 Dovecot 和 Postfix/Sendmail?,为什么要同时使用 Dovecot 和 Postfix?,为什么要同时使用 Dovecot 和 Postfix?这给出了一般的想法,但在这里我正在寻找更精确的细节来了解电子邮件服务器如何连接在一起。

假设我拥有example.com配置如下 DNS 的域:

example.com       MX     mail.example.com
mail.example.com  A      1.2.3.4

并且安装在我postfix的dovecotIP 1.2.3.4 的 Debian 服务器上。

假设我发送了一封电子邮件:

  • 来自我的 ISP 地址[email protected],来自我的本地计算机 Thunderbird
  • ...到地址[email protected]

在此过程中将发生的不同联系的总体情况是什么?

以下是否正确:

  1. 我的本地计算机连接到smtp.myisp.com(端口 25 或 587)
  2. 我的 ISP 的 SMTP 服务器(后缀?)查询 DNSexample.com并最终连接到mail.example.com,即我自己的服务器postfix正在侦听端口 25 或 587
  3. 我的服务器postfix将电子邮件保存在磁盘上(默认情况下在哪里?)
  4. 或postfix将电子邮件发送到dovecot(他们如何连接在一起?)
  5. 当最终我想[email protected]用另一个 Thunderbird 帐户获取邮件时,计算机将在端口 110 或 995 (POP3) 上连接我的服务器 1.2.3.4。

?

在这种情况下,postfix是 MTA,dovecot是 POP3/IMAP 服务器,但什么是 MDA/LDA(Delivery Agent)?

email postfix
  • 1 个回答
  • 231 Views
Martin Hope
Basj
Asked: 2020-02-04 12:02:47 +0800 CST

rsync 在这个简单的例子中是如何工作的?

  • 1

比方说:

  • a是一个包含随机字节的 256 MB 文件
  • b是同一个文件,只是多了一个前导字节0

感谢这个答案,我发现rsync能够计算这两个文件之间的“二进制差异补丁”:

rsync --only-write-batch=patch b a

在这个例子中,patch文件是......只有 65 KB,所以非常好。

总之,rsyncdetect这么少的byes怎么改的?我最初认为它会比较:

  • a[0:k] 和 b[0:k]
  • a[k+1:2k] 和 b[k+1:2k]
  • a[2k+1:3k] 和 b[2k+1:3k]
  • ...
  • a[Nk:N] 和 b[Nk:N]

对于各种 k 值,例如 2 可能的最大幂 (2^j),如果不匹配,则为 2^(j-1),然后为 2^(j-2),等等。

但是对于这些文件a和b,它会完全失败,因为因为b只是a移动了一个字节,所以根本不会有类似的块!然后我们会期望patch是... 256 MB。

但是在这里它以一种更聪明的方式工作,在这个简单的例子中算法是如何工作的b=一个字节与内容的连接a?

rsync diff
  • 1 个回答
  • 186 Views
Martin Hope
Basj
Asked: 2020-02-04 07:30:20 +0800 CST

两个相似的大原始二进制文件的差异

  • 16

假设abc我的本地计算机上有一个 4 GB 的文件。我已经通过 SFTP 将它上传到远程服务器,花了几个小时。

现在我在本地稍微修改了文件(可能最大 50 MB,但不是此文件中的连续字节),并将其保存到abc2. 我还将原始文件保存在abc本地计算机上。

如何计算abc和的二进制差异abc2?

应用:

  • 我只能将patch文件(可能最大 100MB)发送到远程服务器,而不是重新上传整个abc2文件(再次需要几个小时!),并且仅abc2在远程服务器上重新创建。abcpatch

  • 在本地,我可以只保存+ ,而不是浪费 8 GB 来备份abc和,所以它只需要 < 4100 MB。abc2abcpatch

这个怎么做?

PS:对于文本,我知道diff,但在这里我正在寻找适用于任何原始二进制格式的东西,它可以是 zip 文件或可执行文件,甚至是其他类型的文件。

PS2:如果可能,我不想使用rsync; 我知道它可以以有效的方式在两台计算机之间复制更改(而不是重新发送未更改的数据),但是在这里我真的想要一个patch文件,如果我同时拥有abc和patch.

files diff
  • 5 个回答
  • 10090 Views
Martin Hope
Basj
Asked: 2020-01-10 14:56:07 +0800 CST

如何创建隔离/监禁的 SFTP 用户?

  • 7

我刚刚friend在我的服务器上创建了一个新用户,目标是为我的朋友提供 SFTP 访问权限,以便他可以在那里托管他的网站。

我注意到,通过SFTP与用户连接服务器时friend,默认文件夹是/home/friend/,但是您可以轻松退出/home/friend/ 并访问服务器上具有读取权限的所有文件,例如/home/anotheruser/website2/config.php!我不想要这个。

我被告知将此用户置于“监禁/隔离模式”,因此,在我的默认值结束时sshd_config:

...
Subsystem sftp /usr/lib/openssh/sftp-server

...我添加了这个:

Match User friend
ChrootDirectory /home/friend
ForceCommand internal-sftp

并做到了service sshd restart。

然后我根本无法通过 SFTP 与用户连接服务器friend,哎呀!我也尝试通过替换Subsystem ...,Subsystem sftp internal-sftp但结果是一样的:friend无法再通过 SFTP 连接服务器。

问题:

如何隔离用户,使他无法通过 SFTP/SSHfriend出门?/home/friend/


注意:我已经阅读了如何使用 chroot Jail 将 SFTP 用户限制在主目录中,我如何 chroot 仅 sftp 的 SSH 用户进入他们的家? , ETC。

sshd ssh
  • 3 个回答
  • 2663 Views
Martin Hope
Basj
Asked: 2019-11-01 23:04:13 +0800 CST

列出所有存在于 backup2.tar.bz2 但不存在于 backup1.tar.bz2 中的文件

  • 1

这列出了两个备份中的所有文件,按大小排序:

tar tvf backup1.tar.bz2 |sort -k3 -n >backup1_files.txt
tar tvf backup2.tar.bz2 |sort -k3 -n >backup2_files.txt

我想列出所有存在于 backup2.tar.bz2 但不存在于 backup1.tar.bz2 中的文件,按大小排序。

这个怎么做?


注意:

  • 执行diff这些 .txt 文件中的一个将不起作用,因为某些文件的修改日期不会相同。因此,这个问题与Is there a tool to get the lines in a file that are not in another? 不重复?.

  • 删除v会删除修改日期,还会删除文件大小,所以这不是一个选项,因为不可能按大小对它们进行排序。

backup
  • 2 个回答
  • 81 Views
Martin Hope
Basj
Asked: 2018-11-30 09:17:44 +0800 CST

有没有更轻量级的Linux+Python读写MP3方案?

  • 0

这非常适合将 WAV 导出到 MP3:

from pydub import AudioSegment
song = AudioSegment.from_wav("test.wav")
song.export("test.mp3", format="mp3", bitrate="256k")

但它需要安装ffmpeg需要 338 MB 的空间apt-get install ffmpeg:

在此处输入图像描述

我正在处理一个小容器,因此我想避免为此任务使用 338 MB。

有没有更轻量级的用Python+Linux读写MP3的方案?

apt python
  • 1 个回答
  • 57 Views
Martin Hope
Basj
Asked: 2018-11-28 04:05:17 +0800 CST

在两台计算机之间同步一个文件夹,使用文件系统观察程序,以便每次修改文件时都会立即复制它

  • 23

我有:

  • 我通过 SSH 在 IP 203.0.113.0 端口 1234 上连接的 Linux 服务器

  • 一台家用电脑(在路由器后面),公共 IP 198.51.100.17,是 Debian 或 Windows+Cygwin

/home/inprogress/ 让文件夹同步(双向)最简单的方法是什么,有点像rsync,但使用文件系统观察程序,以便每次修改文件时,它都会立即在另一端复制?(即无需手动调用同步程序)

我正在寻找命令行/无 GUI 解决方案,因为服务器是无头的。

是否有 Linux/Debian 内置解决方案?

networking filesystems
  • 2 个回答
  • 5424 Views
Martin Hope
Basj
Asked: 2018-04-19 11:58:05 +0800 CST

如果 GNU 屏幕已经存在,则重新附加到它,否则创建它

  • 1

我正在尝试这样做:如果一个名为的 GNU 屏幕worker已经存在,则重新附加到它,否则通过启动python example.py.

我试过了:

if [ls /var/run/screen/S-root/ |grep -Fxq worker] then screen -r worker else cd /home/www/example/; screen -S worker python example.py fi

但它似乎不起作用。

语法有问题吗?

bash gnu-screen
  • 1 个回答
  • 432 Views
Martin Hope
Basj
Asked: 2018-02-14 00:58:30 +0800 CST

创建一个屏幕,在其中启动一个命令并分离

  • 3

我想做一个自动执行此操作的单行 bash 命令:

screen -S myserver 
python myserver.py  # inside the new screen
CTRL A, D (detach)

我认为这行不通:

screen -S myserver && python myserver.py

因为python myserver.py不会在screen. _

command-line gnu-screen
  • 1 个回答
  • 7395 Views
Martin Hope
Basj
Asked: 2018-02-03 08:07:27 +0800 CST

UDP 或 TCP 打孔以连接两个对等点(每个对等点位于路由器后面)

  • 5

我正在尝试将我的计算机直接(没有第 3 方服务器)连接到朋友的计算机。我们都在 ISP 路由器后面,并且希望(作为一个挑战!)在不修改路由器配置的情况下进行连接。

正如这里和这里所建议的,我们尝试了两种 TCP 打孔:

myself$ nc -p 7777 public-ip-friend 8888
friend$ nc -p 8888 public-ip-myself 7777

和 UDP 打孔:

myself$ nc -u -p 7777 public-ip-friend 8888
friend$ nc -u -p 8888 public-ip-myself 7777

但他们都没有工作。

如何解决这个问题?

注意:VPS(不在 NAT 后面)<--> 我的家用电脑(仍在路由器后面)使用相同的方法工作。

tcp networking
  • 1 个回答
  • 3605 Views
Martin Hope
Basj
Asked: 2017-11-23 09:11:55 +0800 CST

接收有关全新 Debian 的电子邮件

  • 0

我在我的 VPS 上重新安装了全新的 Debian 8。

全部设置为默认值。

dpkg -s exim4并dpkg -s postfix说没有安装exim,并且安装了postfix 。这可以通过lsof -i :25显示 PID 478 来确认,然后ps p 478显示478 ? Ss 0:00 /usr/lib/postfix/master。没做过apt-get install postfix,好像已经默认安装了。

我已经为example.com我的注册商完成了 DNS MX 记录,并将其指向我的服务器。

我刚刚从我的 Gmail 发送了一封电子邮件到[email protected].

  1. 我还在No mail做的时候看到$ mail。

  2. 如何查看是否有东西到达后缀?

  3. 是否需要在全新的 Debian 安装上进行配置以接受来自互联网的电子邮件?

  4. 我应该在root本地创建邮箱,以接受来自外部邮寄者的邮件[email protected]吗?


这是iptables(未修改,默认配置)的结果:

root@blah:~# iptables -nvL
Chain INPUT (policy ACCEPT 77135 packets, 50M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 2 packets, 120 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 66416 packets, 11M bytes)
 pkts bytes target     prot opt in     out     source               destination

我现在看到cat /var/log/mail.log这个:

Nov 22 11:57:32 blah postfix/smtpd[10485]: connect from mail-ua0-f171.google.com[209.85.xxx.xxx]  
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-ua0-f171.google.com>  
Nov 22 11:57:32 blah postfix/smtpd[10485]: disconnect from mail-ua0-f171.google.com[209.85.xxx.xxx]
debian email
  • 2 个回答
  • 581 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve