我在批处理系统上有一份工作,该系统运行时间非常长并产生大量输出。实际上,我必须通过 gzip 管道传输标准输出,以防止批处理节点填充其工作区并随后崩溃。
longscript | gzip -9 > log.gz
Run Code Online (Sandbox Code Playgroud)
现在,我想在作业仍在运行时调查作业的输出。所以我这样做:
gunzip log.gz
Run Code Online (Sandbox Code Playgroud)
这运行时间很长,因为它是一个巨大的文件(几 GB)。我可以在运行时看到正在创建的输出文件,并且可以在构建时查看它。
tail log
> some-line-of-the-log-file
tail log
> some-other-line-of-the-log-file
Run Code Online (Sandbox Code Playgroud)
但是,最终 gzip 遇到了 gzip 压缩文件的结尾。由于作业仍在运行并且 gzip 仍在写入文件,因此还没有合适的页脚,所以会发生这种情况:
gzip: log.gz: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
在此之后,提取的日志文件被删除,因为 gzip 认为损坏的提取数据对我没有用。然而,我不同意——即使最后几行被打乱了,输出对我来说仍然非常有趣。
如何说服 gzip 让我保留“损坏”的文件?
我有一个带有 USB-C 插孔的耳机。它们是 Google Pixel 3 附带的。我正在使用 Archlinux,并且我很乐意将它们与我笔记本上的 USB-C 插孔一起使用。但是,我不知道需要采取哪些步骤才能使其发挥作用。
这是我到目前为止所做的。
lsusb
显示设备:Bus 003 Device 005: ID 18d1:5033 Google Inc.
dmesg
设备连接时显示: [ 2520.298434] usb 3-1: new full-speed USB device number 5 using xhci_hcd
[ 2520.694851] usb 3-1: New USB device found, idVendor=18d1, idProduct=5033, bcdDevice= 0.20
[ 2520.694857] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2520.694861] usb 3-1: Product: Pixel USB-C earbuds
[ 2520.694864] usb 3-1: Manufacturer: Google
[ 2520.694867] usb 3-1: SerialNumber: 00000089MAJ24397
Run Code Online (Sandbox Code Playgroud)
但是,aplay …