该logger
命令通过 syslog 记录一个条目,它通常将该行放入某个文件中,例如/var/log/messages
.
如果我正确理解Arch Linux 中的文档,所有日志记录都是通过 systemd 完成的,但是我找不到logger
使用journalctl
.
logger
在 Arch Linux 中给出的消息究竟会发生什么?/var/log/journal/*/system.journal
。)journalctl
吗?)我logger
经常使用,但是是否有用于通过网络远程提交系统日志消息的 FOSS 命令行工具?
现在,我必须配置一个设施/优先级对以提交到rsyslogd
侧面的远程服务器。我想去掉中间人,而不必修改我的本地 syslog 守护进程的配置。
有这样的工具吗?
我在脚本中使用以下选项在终端以及 /var/log/messages 上打印
echo "System Load is OK : $Current_loadadv"
echo "System Load is OK : $Current_loadadv" | logger
Run Code Online (Sandbox Code Playgroud)
但我怎么能在单行中做到这一点?
当使用“logger”命令将消息从脚本写入系统日志时,我使用-t
“标签”将脚本名称与写入日志的消息一起存储。
我这样做是为了使查找条目更容易进行故障排除。
我在另一篇文章中看到过,它展示了如何使用 tee 和 logger,如下所示。
tee >(logger) <<< "System Load is OK : $Current_loadadv"
Run Code Online (Sandbox Code Playgroud)
>(logger)
是 bash 语法,用于创建将进入 FIFO 的文件描述符,然后将其馈送到 logger 的标准输入(这是 bash 中称为“进程替换”的一种形式)。然后它将该文件描述符的路径作为参数传递回 tee,并且由于 tee 写入其非选项参数,因此写入 FD,并且 logger 接收您的字符串。
如何修改以下命令以使用上面的标记和记录器?
curl -Sks http://x.x.x.x/scripts/somescript.sh | /bin/bash | logger -t "sometag"
Run Code Online (Sandbox Code Playgroud) 请解释以下命令的作用。
logger_cmd="logger -p local0.info ${program-name}[$$]:"
$logger_cmd "There is some files missing in ${dest-dir}"
Run Code Online (Sandbox Code Playgroud)
如何在日志文件中写入任何消息?
我写了一个命令,但它没有在 llog.txt 中显示任何消息。帮我。
logger -s "any message" -t "WARNING" -f ~/llog.txt
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 systemd 将日志重定向到文件。我尝试将以下语句添加到服务中。
StandardOutput=file:/tmp/test1.txt
StandardError=file:/tmp/test2.txt
Run Code Online (Sandbox Code Playgroud)
但这些文件没有生成。我在这里缺少什么吗?是否需要为此启用任何内核标志?
我在我的设备中使用 systemd 版本 216。
我尝试了两种方法将程序调用的输出定向printf
到文件。在这两种情况下,有时文件会立即更新,有时需要几分钟,有时根本不更新文件。
我的程序从/etc/network/if-up.d/upstart执行的 bash 脚本运行。我已经为我的 bash 脚本尝试过这个:
#!/bin/bash
sleep 2
if ! pgrep "demo" > /dev/null
then
sudo /home/pi/code/demo_device/demo >> /home/pi/code/demo_device/auto_log.txt 2>&1 &
fi
Run Code Online (Sandbox Code Playgroud)
和这个:
#!/bin/bash
exec 1> >(logger -s -t $(basename $0)) 2>&1
sleep 2
if ! pgrep "demo" > /dev/null
then
sudo /home/pi/code/demo_device/demo &
fi
Run Code Online (Sandbox Code Playgroud)
第一种情况下的 auto_log.txt 文件和第二种情况下的/var/log/user.log 文件都存在我上面描述的问题。我还让 bash 脚本运行演示可执行文件,start-stop-daemon
并得到了相同的结果。当启动时将程序作为后台进程运行时,如何才能立即一致地更新日志文件?
注意:我不知道这是否相关,但该程序被设计为连续运行并且永不退出。