我知道怎么用tee
,当然,我已经用过很多次了。然而,它通常是这样的:
du -h /some/directory | sort -h | tee census
虽然这工作正常,但这意味着我直到快结束时才看到任何内容,因为sort
需要收集du
.我认为如果可以做一些事情可能会很好:
du - h | tee stderr | sort -h > census
其中显然stderr
是一些表示真实误差输出通道的符号。我在相当稀疏的文档中没有找到任何内容 - 这可能吗?
我知道怎么用tee
,当然,我已经用过很多次了。然而,它通常是这样的:
du -h /some/directory | sort -h | tee census
虽然这工作正常,但这意味着我直到快结束时才看到任何内容,因为sort
需要收集du
.我认为如果可以做一些事情可能会很好:
du - h | tee stderr | sort -h > census
其中显然stderr
是一些表示真实误差输出通道的符号。我在相当稀疏的文档中没有找到任何内容 - 这可能吗?
这是一个有点令人困惑的情况 - 据我所知,这并不是一场危机,因为相关服务似乎仍然有效。
背景是,我想升级到最新的 apache2,这在我的 Debian 版本中不可用,所以我从源代码构建了它,将其安装在 中/usr/local/apache2/
,更改了服务文件并执行了以下操作systemctl daemon-reload
:
root@vogon:~# cat /lib/systemd/system/apache2.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/local/apache2/bin/apachectl start
ExecStop=/usr/local/apache2/bin/apachectl graceful-stop
ExecReload=/usr/local/apache2/bin/apachectl graceful
KillMode=mixed
PrivateTmp=true
Restart=on-abort
[Install]
WantedBy=multi-user.target
由于某种原因,这不起作用,我仍然需要弄清楚,所以我将其改回之前的状态 - 现在我看到该服务两次:
root@vogon:~# systemctl status *apa*
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-03-06 10:29:12 UTC; 21min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 3660993 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 3660997 (apache2)
Tasks: 9 (limit: 35927)
Memory: 68.8M
CPU: 22.258s
CGroup: /system.slice/apache2.service
├─3660997 /usr/sbin/apache2 -k start
├─3660998 /usr/sbin/apache2 -k start
├─3660999 /usr/sbin/apache2 -k start
├─3661000 /usr/sbin/apache2 -k start
├─3661001 /usr/sbin/apache2 -k start
├─3661002 /usr/sbin/apache2 -k start
├─3661003 /usr/sbin/apache2 -k start
├─3661006 /usr/sbin/apache2 -k start
└─3661007 /usr/sbin/apache2 -k start
Mar 06 10:29:12 vogon systemd[1]: Starting The Apache HTTP Server...
Mar 06 10:29:12 vogon systemd[1]: Started The Apache HTTP Server.
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-03-06 10:29:12 UTC; 21min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 3660993 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 3660997 (apache2)
Tasks: 9 (limit: 35927)
Memory: 68.8M
CPU: 22.258s
CGroup: /system.slice/apache2.service
├─3660997 /usr/sbin/apache2 -k start
├─3660998 /usr/sbin/apache2 -k start
├─3660999 /usr/sbin/apache2 -k start
├─3661000 /usr/sbin/apache2 -k start
├─3661001 /usr/sbin/apache2 -k start
├─3661002 /usr/sbin/apache2 -k start
├─3661003 /usr/sbin/apache2 -k start
├─3661006 /usr/sbin/apache2 -k start
└─3661007 /usr/sbin/apache2 -k start
Mar 06 10:29:12 vogon systemd[1]: Starting The Apache HTTP Server...
Mar 06 10:29:12 vogon systemd[1]: Started The Apache HTTP Server.
如果我拼写出服务名称apache2
,它只会显示一次,但它过去与通配符相同。这是为什么?
我正在管理一个混合有 Linux 服务器和 Windows/OSX/Linux/其他系统的 LAN。不久前,我配置了我们的 DHCP- (isc-dhcpd-4.4.1) 和 DNS 服务器 (BIND 9.16.44-Debian) 来实现 DDNS,效果很好。
然而,地址空间现在看起来确实非常混乱,一些服务器具有静态地址,所以我想隔离范围低端的静态地址。这是 dhcpd.conf 中有趣的部分:
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.10 192.168.50.250;
option routers 192.168.50.1;
option broadcast-address 192.168.50.255;
option boot-size 8208;
next-server 192.168.50.111;
option tftp-server-address 192.168.50.111;
option bootfile-name "/boot/grub/x86_64-efi/core.efi";
filename "/debian12/boot/efi/EFI/debian/grubx64.efi";
}
host bonsai {
hardware ethernet FC:34:97:1A:D3:67;
fixed-address 192.168.50.149;
}
...
根据host bonsai ...
配置的建议,某些系统位于固定地址上 - 我想将它们移至静态地址。
在我看来,这似乎很简单,只需将范围参数更改为range 192.168.50.10 192.168.50.250;
-range 192.168.50.100 192.168.50.250;
并清理 DNS 文件,只留下静态地址。但这是这么简单吗:
我希望能够在不影响人们工作的情况下做到这一点;我的想法是,完全动态地址上的用户根本不应该注意到变化 - 当他们续订租约时,他们会获得新范围内的地址(除非某处有缓存?)。
不过我说得对吗?我欢迎任何建议或意见。
我有一台旧笔记本电脑 (Dell Latitude D610),我想将其用作某些需要串行终端的系统,因为这台机器有一个内置 RS-232 端口。我已经安装了Debian 12和minicom,但没有图形环境,所以我在文本控制台上登录。但是,当我启动 minicom 时,Ctl-A Z
不会打开帮助菜单 - 相反,我只看到z
回显并且光标不移动。事实上,我在屏幕上观察到了同样的情况,所以这不仅限于 minicom。
在我的新笔记本电脑上,我看到了同样的现象,但它在同一系统上的 GUI 终端中工作没有问题,因此它似乎特定于文本模式控制台。我可以更改某个设置来解决此问题吗?
我已经在 Debian 11 上设置了 openLDAP 2.4,我想更改一些参数,比如 loglevel 和 logfile,这看起来非常简单:
# man slapd.conf
SLAPD.CONF(5) File Formats Manual SLAPD.CONF(5)
NAME
slapd.conf - configuration file for slapd, the stand-alone LDAP daemon
SYNOPSIS
/etc/ldap/slapd.conf
DESCRIPTION
The file /etc/ldap/slapd.conf contains configuration information for the slapd(8) daemon. This configuration file is also used by the SLAPD tools
slapacl(8), slapadd(8), slapauth(8), slapcat(8), slapdn(8), slapindex(8), and slaptest(8).
...
logfile <filename>
Specify a file for recording debug log messages. By default these messages only go to stderr and are not recorded anywhere else. Specifying
a logfile copies messages to both stderr and the logfile.
loglevel <integer> [...]
Specify the level at which debugging statements and operation statistics should be syslogged (currently logged to the syslogd(8) LOG_LOCAL4
facility). They must be considered subsystems rather than increasingly verbose log levels. Some messages with higher priority are logged
...
除了没有名为slapd.conf
;的文件 它已被替换为/etc/ldap/slapd.d
,这更加整洁。slapd.conf
但是,我没有找到参数如何适应的描述/etc/ldap/slapd.d
;有一个调用的参数olcLogLevel
可能/etc/ldap/slapd.d/cn=config.ldif
是一个参数,但是来自 的其他所有参数呢slapd.conf
?
无论如何,我的问题是:如何更改新方案中的日志级别和日志文件?
我在 Debian 11 服务器 (BIND 9.16.33-Debian) 上为我公司的 LAN 设置了一个 DNS 服务,其中包含以下(转发)区域文件(mycomp.com
当然不是真名):
# cat forward.mycomp.com.db
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.mycomp.com. root.ns1.mycomp.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
;@ IN NS localhost.
;@ IN A 127.0.0.1
;@ IN AAAA ::1
@ IN NS ns1.mycomp.com.
ns1 IN A 192.168.50.9
www IN A 77.66.11.123
bonsai IN A 192.168.50.149
...
所有 PC 都指向内部 DNS:
# cat /etc/resolv.conf
# Generated by NetworkManager
search mycom.com
nameserver 192.168.50.9
现在的问题是,公司网站也被称为mycomp.com
- 我试图包含www
在中forward.mycomp.com.db
,并且它有效,因为它解析为正确的地址,但www.mycomp.com
只是 的别名mycomp.com
,所以我仍然无法访问该网站从局域网内部。从我的搜索中我可以看出我的方向是正确的,但我认为我需要将我的浏览器指向mycomp.com
. 但是mycomp.com
,显然,包含在上面的文件中是行不通的;我该如何解决?
我正在尝试按照这些说明为 Ubuntu 22.04 服务器设置 PXE 启动。这是我的/srv/tftp
:
root@vogon:~# ll /srv/tftp
total 1444
drwxr-xr-x 3 root root 4096 Jul 15 2022 boot/
drwxr-xr-x 3 root root 4096 Jul 1 2022 debian/
drwxrwxrwx 3 root root 4096 Jul 8 2022 debian-installer/
lrwxrwxrwx 1 root root 36 Jul 8 2022 grub.cfg -> debian-installer/amd64/grub/grub.cfg
-rw-r--r-- 1 root root 9278 Jul 1 2022 grub.cfg.bk
-rw-r--r-- 1 root root 1426816 Jan 25 13:44 grubx64.efi
drwx------ 2 root root 16384 Jul 8 2022 lost+found/
drwxr-xr-x 2 root root 4096 Jan 25 13:22 save/
drwxr-xr-x 4 root root 4096 Jan 25 12:52 ubuntu/
我的想法是我可以从多个发行版中进行选择,这适用于 Debian 11 和 Ubuntu 20.04;我现在想添加 Ubuntu 22.04 - 这是我的grub.cfg
:
root@vogon:~# cat /srv/tftp/grub.cfg
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
set gfxpayload=text
set timeout=-1
menuentry 'Debian 11'{
set background_color=black
linux /debian/11/amd64/linux priority=low vga=788 ---
initrd /debian/11/amd64/initrd.gz
}
menuentry "Ubuntu 20.04" {
linux /ubuntu/20.04/amd64/linux only-ubiquity ip=dhcp ---
initrd /ubuntu/20.04/amd64/initrd.gz
}
menuentry "Ubuntu 22.04 Server" {
linux /srv/tftp/ubuntu/22.04-srv/vmlinuz url=https://www.releases.ubuntu.com/22.04/ubuntu-22.04.1-live-server-amd64.iso only-ubiquity ip=dhcp ---
initrd=/srv/tftp/ubuntu/22.04-srv/initrd
}
菜单显示正常,但是当我选择 时Ubuntu 22.04 Server
,我会短暂地看到消息File not found
- 但是没有关于哪个文件的信息。linux ...
此条目的行经过多次排列,都显示相同的错误。中提到的最后一个文件syslog
是/srv/tftp/ubuntu/22.04-srv/vmlinuz
:
...
Jan 25 13:18:52 vogon in.tftpd[376344]: RRQ from 192.168.50.96 filename grubx64.efi
Jan 25 13:18:52 vogon in.tftpd[376345]: RRQ from 192.168.50.96 filename /debian-installer/amd64/grub/x86_64-efi/command.lst
Jan 25 13:18:52 vogon in.tftpd[376346]: RRQ from 192.168.50.96 filename /debian-installer/amd64/grub/x86_64-efi/fs.lst
Jan 25 13:18:52 vogon in.tftpd[376347]: RRQ from 192.168.50.96 filename /debian-installer/amd64/grub/x86_64-efi/crypto.lst
Jan 25 13:18:52 vogon in.tftpd[376348]: RRQ from 192.168.50.96 filename /debian-installer/amd64/grub/x86_64-efi/terminal.lst
Jan 25 13:18:52 vogon in.tftpd[376349]: RRQ from 192.168.50.96 filename /debian-installer/amd64/grub/grub.cfg
Jan 25 13:19:00 vogon in.tftpd[376358]: RRQ from 192.168.50.96 filename /srv/tftp/ubuntu/22.04-srv/vmlinuz
...
我怀疑它vmlinux
已加载,但url=...
不理解 - 但它应该是什么?
我有一个带有 Debian 11 的系统,我想尝试将其设置为用于用户身份验证的 LDAP 客户端,如下所示:https ://linuxhint.com/configure-ldap-client-debian/ 。然而,大约在配置进行到一半时,作为安装的一部分,我按错了键,这终止了我所在的对话框,然后它继续安装了东西。
我尝试删除安装apt purge libnss-ldap libpam-ldap ldap-utils nscd
并从头开始安装 - 但现在,它只是在不显示对话框的情况下启动。我试图找到所有与 LDAP 相关的文件find / -iname "*ldap*"
,所以我可以删除它们,但似乎没有任何相关的东西;我需要做什么才能像以前从未做过一样重新安装?
一个简单的问题要问,但回答起来并不简单——我有一个带管理端口和串行端口的托管交换机。串行端口似乎不起作用,并且 mgmt 端口的 IP 地址未知(似乎不是出厂默认的)。我使用笔记本电脑的 cat-5 电缆直接连接到它,专门设置有线网络并尝试访问 mgmt 端口。
据我所知,原则上应该可以使用 arp-scan,例如:
# arp-scan -I eth0 0.0.0.0/0
或类似的东西,但这需要很长时间。难道没有办法得到回应——比如“谁在那儿”?毕竟,另一端只有一个地址。
我有一个 U.2 SSD,它在 lsblk 中显示为 nvme1n1:
root@eris:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 3.6T 0 disk
├─nvme0n1p1 259:1 0 476M 0 part /boot/efi
├─nvme0n1p2 259:2 0 38.1G 0 part /
└─nvme0n1p3 259:3 0 3.6T 0 part /data
nvme1n1 259:4 0 3.5T 0 disk
查看 dmesg,我可以看到:
root@eris:~# dmesg | grep -i nvme
[ 0.997417] nvme nvme0: pci function 0000:01:00.0
[ 0.997448] nvme nvme1: pci function 0000:04:00.0
...
这匹配:
root@eris:~# ll /sys/bus/pci/drivers/nvme | grep 04:00.0
lrwxrwxrwx 1 root root 0 Jul 4 14:41 0000:04:00.0 -> ../../../../devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0
这是我以后需要知道的。
我的问题是,有没有更简单的方法可以从/dev/nvme1n1
to获得/sys/bus/pci/drivers/nvme/0000:04:00.0
?
在过去的两天里,我注意到当我启动我的系统(Debian 11)时,一些东西启动了 youtube-dl;它似乎是我一登录。我注意到的原因是它窃取了所有资源,我必须使用 Ctl-Alt-F2 转到控制台并以 root 身份登录。杀死进程没有帮助 - 它似乎是作业流的一部分,所以唯一的方法是临时重命名 python 可执行文件,这会使它们很快失败。
我怀疑这与我一直在为一门课程下载大量小视频有关,但它实际上是从哪里开始的呢?
编辑
我想我可能已经找到了问题所在 - 我会在有机会重新启动(或只是注销/登录)时看到。这很微妙。我在与 sddm 有任何关系的任何文件中都找不到对 youtube-dl 的任何引用(因为我使用 KDE),除了 my .local/share/sddm/xorg-session.log
,它说:
/etc/sddm/Xsession: 70: /etc/profile: function: not found
Error: /undefinedfilename in (/usr/bin/startplasma-x11.ps)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
Dictionary stack:
--dict:733/1123(ro)(G)-- --dict:0/20(G)-- --dict:75/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
rm: cannot remove '/usr/bin/startplasma-x11.ps': No such file or directory
/etc/sddm/Xsession: 78: /etc/profile: function: not found
ERROR: [something very long ...]\ufffd\x03\x12\x08' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:^?ELF^B^A^A^C^C>^A0M@��@8^K@^^^]^F^D@@@h^Bh^B^H^C^D�^B�^B�^B^\^\^A^A^D�=�=^P^A^E@@@^]O^]O^P^A^D����#�#^P^A^Fh�h�hǨ^H�^H^P^B^Fp�p�pȀ^B�^B^H^D^D�^B�^B�^BDD^DP�td^Dh�h�h��^A�^A^DQ�td^F^PR�td^Dh�h�hǘ^H�^H^A/lib64/ld-linux-x86-64.so.2^D^T^CGNU���eBFD�ӝ^C�^KC�u�U�^D^P^AGNU^C^B^C�^A^F�@�^A^H����|�e�mCE���qX^\�^R^Rj^G^R^_^L^RB^P^R^H^B^R�^S^R^_^U^R�^C^R^H" ) to search YouTube
看第一行/etc/sddm/Xsession
:
#! /bin/sh
# Xsession - run as user
session=$1
我突然意识到旧的 Bourne shell 不理解新的 shell 函数语法function xyz
,而是需要xyz()
- 因此在.local/share/sddm/xorg-session.log
. 我刚刚定义了一个youtube-dl
在问题开始时调用的函数;Xsession
脚本源,/etc/profile
无法处理function
然后运行函数定义中的内容,即youtube-dl
,使用恰好在 中定义的任何参数Xsession
。