我有以下行 /etc/rsyslog.conf
:programname, contains, "suhosin" /var/log/suhosin.log
Run Code Online (Sandbox Code Playgroud)
它将所有与 php 安全相关的事件记录到/var/log/suhosin.log. 这很好,但我希望 rsyslog 执行我的脚本action.sh而不是记录到文件。我怎么能那样做?
我有以下日期格式的日志:
2013-12-14 18:53:33 aaaaaaaaaaaaaaaa
2013-12-14 18:53:33 bbbbbbbbb
2013-12-14 18:53:33 ccccccccccccccccccccc
Run Code Online (Sandbox Code Playgroud)
将其转换为最简单的解决方案是什么
Dec 14 18:53:33 aaaaaaaaaaaaaaaa
Dec 14 18:53:33 bbbbbbbbb
Dec 14 18:53:33 ccccccccccccccccccccc
Run Code Online (Sandbox Code Playgroud)
最好使用 bash(或 python)
我正在使用雷鸟 + IMAP。Thunderbird 在本地缓存消息:
.icedove/asdfgh.default/ImapMail/mail.example.com/
Run Code Online (Sandbox Code Playgroud)
对于每个 IMAP 文件夹,都有文件Folder和Folder.msf.
我注意到,当我删除带有大附件的电子邮件,然后也从垃圾箱中删除它时,垃圾箱文件.icedove/asdfgh.default/ImapMail/mail.example.com/Trash仍然包含电子邮件(和附件)。因此,即使在 Thunderbird 中,邮件看起来好像已被删除(或从垃圾箱中删除,或任何术语),但消息数据仍在垃圾箱文件中(当我打开垃圾箱文件时我可以看到它用我的文本编辑器)
有人可以解释一下这里发生了什么吗?我怎样才能真正删除电子邮件?
我应该补充一点,该电子邮件已在 IMAP 服务器上成功删除。因此,Thunderbird 已删除服务器上的电子邮件,但由于某种原因仍将数据保留在文件中。
在 中LXDE,任务栏显示所有当前运行的应用程序/窗口的选项卡,如下面的屏幕截图所示:

问题是,我很难区分哪个窗口是我现在所在的窗口(活动窗口)
所有标签对我来说都一样。有没有办法将活动窗口配置为具有另一种颜色?
要将已挂载的文件系统重新挂载为只读,我可以使用以下命令:
mount -o remount,ro /foo
Run Code Online (Sandbox Code Playgroud)
这用于例如关闭序列中,其中根文件系统 ( /) 以只读方式重新安装,就在halt/reboot调用之前。
实际上重新挂载为只读有什么作用?它是否会更改内核中的某些“标志”,从而拒绝写入?
编写自己的程序除了将给定的文件系统重新挂载为只读之外什么都不做会有多困难?
我需要获取所有连接的 USB 磁盘的设备名称(即sdd)。
我插入了 3 个 USB 磁盘和 2 个 SATA 磁盘:
$ find /sys/devices/ -name block
/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/host5/target5:0:0/5:0:0:0/block
/sys/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0/block
/sys/devices/pci0000:00/0000:00:14.0/usb4/4-5/4-5:1.0/host4/target4:0:0/4:0:0:0/block
/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block
/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block
Run Code Online (Sandbox Code Playgroud)
我想忽略SATA磁盘,但我需要列出所有USB磁盘。
在终端,我可以我们ls,它会给我sdd:
$ ls /sys/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/host5/target5:0:0/5:0:0:0/block
sdd
Run Code Online (Sandbox Code Playgroud)
但我需要在脚本中使用它。我需要遍历所有的U盘,而且我事先不知道确切的路径,所以我必须使用通配符(*或?):
for DISK in $(ls /sys/devices/pci0000:00/0000:00:14.0/usb?/*/*:1.0/host?/target?:0:0/?:0:0:0/block) ; do
echo /dev/$DISK
done
Run Code Online (Sandbox Code Playgroud)
以上仅在插入一个 USB 磁盘时才有效。如果插入两个或多个磁盘,我得到sdd的/sys路径以及我不想要的路径,即:
/dev//sys/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/host5/target5:0:0/5:0:0:0/block:
/dev/sdd
/dev//sys/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0/block:
/dev/sde
/dev//sys/devices/pci0000:00/0000:00:14.0/usb4/4-5/4-5:1.0/host4/target4:0:0/4:0:0:0/block:
/dev/sdc
Run Code Online (Sandbox Code Playgroud)
我怎么能只迭代sdd sde sdc?
我正在寻找不使用udev基础设施的解决方案,即/dev/disk/by-path/
当使用单独的磁盘分区时/tmp,例如/dev/sda4,什么文件系统最适合?
ext4似乎不合适:我不需要日记,我也不需要那个lost+found目录。
我最好在每次启动时重新格式化分区,因此文件系统/检查恢复没有意义。
在我不想使用tmpfsfor的情况下/tmp,什么文件系统最适合/tmp?
我想用它git来跟踪crontab.
我已经初始化了一个新的 git 存储库 /var/spool/cron/crontabs/
现在的问题是,在保存 crontab 时,标题的第二行会发生变化,因为它包含时间戳。
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.ubNueW/crontab installed on Thu Aug 1 06:29:24 2019)
Run Code Online (Sandbox Code Playgroud)
忽略这些无关更改的最简单方法是什么?
在可能重复的问题并没有解决我的问题的重点:如何忽略来自crontab中第2行无关。相反,它解决了一些我没有问过的其他问题,例如一些钩子。
我有file1,并且我需要删除与模式匹配的行。但我想将这些删除的行保存在另一个file2.
sed '/zz/!d' file1 > file2
sed -i '/zz/d' file1
Run Code Online (Sandbox Code Playgroud)
有没有办法将这些命令合并为一个?
或者有更优雅的方法吗?
我找到了一个ffmpeg记录屏幕区域的命令:
ffmpeg -video_size 2000x1600 -framerate 25 -f x11grab -i :0.0+2140,280 output.mp4
Run Code Online (Sandbox Code Playgroud)
但为了找到正确的区域,我必须进行多次试错运行,这很乏味。
是否有可能通过鼠标选择区域并通过 记录它ffmpeg?
如果没有现成的解决方案,我将如何将以这种方式工作的东西组合在一起?