在 FreeBSD 中有一个实用程序来支持循环日志文件,称为clog。
这对于避免维护某些服务(在 systemd 和它们的 journald 之外)的日志非常有趣。
在 linux 和/或 rsyslog 中是否有其他方法可以做同样的事情?
正常运行时间的定义是“告诉系统运行了多长时间”。但是如果您将系统电源状态更改为挂起或恢复:
# uptime
09:50:33 up 8 min, 2 users, load average: 0,24, 0,33, 0,15
# pm-suspend
(5 minutes later, turning on again)
# uptime
09:55:15 up 13 min, 2 users, load average: 0,33, 0,33, 0,16
# pm-hibernate
(5 minutes later, turning on again)
# uptime
10:01:16 up 19 min, 2 users, load average: 3,77, 1,14, 0,43
Run Code Online (Sandbox Code Playgroud)
系统尚未运行,但正常运行时间计数器增加。
我有以下执行脚本的 systemd myscript.service 单元:
[Unit]
Description=MyScript
Wants=time-sync.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/local/bin/test.sh -a
ExecStop=/usr/local/bin/test.sh -b
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我想使用以下 Systemd myscript.timer 单元每分钟重新启动它:
[Unit]
Description=Schedule script execution
[Timer]
OnCalendar=*:0/1
[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)
它只在第一次起作用,之后,状态保持为n/a:
# systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
n/a n/a Tue 2019-10-15 14:50:01 EDT 3ms ago myscript.timer myscript.service
Run Code Online (Sandbox Code Playgroud)
〜
command-line ×1
linux ×1
logs ×1
proc ×1
rsyslog ×1
services ×1
systemd ×1
systemd-unit ×1
time ×1
uptime ×1