我有一个 bash 脚本,只要 Linux 机器开机就可以运行。我按如下所示启动它:
( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) &
Run Code Online (Sandbox Code Playgroud)
启动后,我可以在ps输出中看到 tee 命令,如下所示:
$ ps | grep tee
418 root 0:02 tee /tmp/nginx/debug_log.log
3557 root 0:00 grep tee
Run Code Online (Sandbox Code Playgroud)
我有一个函数可以监视tee生成的日志的大小,并在日志达到一定大小时终止tee命令:
monitor_debug_log_size() {
## Monitor the file size of the debug log to make sure it does not get too big
while true; do
cecho r "CHECKING DEBUG LOG SIZE... "
debugLogSizeBytes=$(stat -c%s "/tmp/nginx/debug_log.log")
cecho r "DEBUG LOG SIZE: $debugLogSizeBytes"
if [ $((debugLogSizeBytes)) …Run Code Online (Sandbox Code Playgroud) 在 bash 中,以下内容适用于从 UNIX 时间戳(从 epoch 开始的秒数)设置日期:
date +%s -s @`date +%s`
Run Code Online (Sandbox Code Playgroud)
在 Busybox 中,这不起作用。如何使用 Busybox 对 date 命令执行相同操作?谢谢。
我正在使用 Yocto 为 SystemD 版本 241 的小型嵌入式 Linux 系统生成自定义映像。根文件系统是只读的。我使用绑定安装和overlayfs 使/var/log/journal 目录存在于单独的读/写分区上。我有一个问题,systemd-journald 得到“Amnesia”并且不记得以前的引导日志,即使它们在持久的读/写文件系统上。这意味着即使日志文件在文件系统上存在且有效,日志也无法访问或清除以前启动时的旧日志文件。
# Setup overlayfs binds for various RW files
VOLATILE_BINDS_append = " \
/persistent-storage/var/log /var/log\n\
"
Run Code Online (Sandbox Code Playgroud)
路径 /var/log 存在:
root@me:/var/log# cd /var/log/
root@me:/var/log# ls -lrt
total 9
drwxr-xr-x 2 root root 1024 Jun 3 01:50 nginx
-rw-r--r-- 1 root root 5260 Jun 9 17:56 messages
drwxr-sr-x 5 root systemd-journal 1024 Jun 9 18:00 journal
root@me:/var/log# ls -lrt journal/
total 3
drwxr-sr-x 2 root systemd-journal 1024 Jun 9 …Run Code Online (Sandbox Code Playgroud) 我想在控制台上显示文本输出,该文本输出始终显示在我的 Raspberry Pi 上的小屏幕上。
以下代码用于显示文本输出:
cd /home/pi/python_test_scripts_linux && sudo nice -n -20 /home/pi/python_test_scripts_linux/test_wrapper.py > /dev/tty1
Run Code Online (Sandbox Code Playgroud)
现在我想在屏幕上看到输出的同时捕获输出 - 我尝试过“tee”,但它不会在屏幕上显示文本,也不会将其捕获到文件中:
cd /home/pi/python_test_scripts_linux && sudo nice -n -20 /home/pi/python_test_scripts_linux/test_wrapper.py | tee /dev/tty1 /tmp/capture.txt
Run Code Online (Sandbox Code Playgroud)
如何将脚本的输出重定向到,/dev/tty1以便我可以在屏幕上看到它,同时还将输出捕获到文件中?
更新1:
根据下面的答案 - 我尝试使用“脚本” - 不幸的是它不起作用:
script -c "cd /home/pi/python_test_scripts_linux && sudo nice -n -20 /home/pi/python_test_scripts_linux/test_wrapper.py > /dev/tty1" /home/pi/python_test_scripts_linux/report.html
Run Code Online (Sandbox Code Playgroud)
更新2:
我还尝试将输出重定向到 /dev/tty1 的文件的输出,但它也不起作用:
sudo tail -F /home/pi/python_test_scripts_linux/report.html > /dev/tty1 &
cd /home/pi/python_test_scripts_linux && sudo nice -n -20 /home/pi/python_test_scripts_linux/test_wrapper.py > /home/pi/python_test_scripts_linux/report.html
Run Code Online (Sandbox Code Playgroud)