在新的 tmux/byobu 会话中启动 @reboot crontab 脚本并能够连接到它

在新的 tmux/byobu 会话中启动 @reboot crontab 脚本并能够连接到它

我有一个 crontab 条目,它在重启后启动备份作业脚本:

@reboot (sleep 120 && bash /srv/recvuser/cron_autostart.sh) 2>&1 | /usr/bin/mail -s "SuperServer ZFS Backup" [email protected]

这有效。但是,脚本可能需要一段时间(1-2 天)。在这段时间里,我希望能够连接到会话并查看进度。我认为 byobu/tmux 是个好主意:

@reboot (sleep 120 && byobu new-session -d -s "backup-job" "bash /home/recvuser/cron_autostart.sh) 2>&1 | /usr/bin/mail -s 'SuperServer ZFS Backup' [email protected]"

但这似乎不起作用。byobu list-session是空的。

您知道如何才能实现我的目标并查看进度,同时最后仍保留我的 Postfix 邮件吗?

答案1

目前还没有答案。在这里添加我的解决方案:有时,您不会注意到简单的解决方案!

我意识到我并不需要byobu这个tmux

我所做的是将日志写入本地文件邮寄结果。这样我就可以 1) 通过电子邮件接收所有日志(一旦完成)和 2)tail日志文件,以防我想查看当前进度

[email protected]
[email protected]
@reboot  /bin/bash -c '(sleep 120 && bash /home/recvuser/cron_autostart.sh) 2>&1 | tee /home/recvuser/logfile.log' | /usr/bin/mail -s "SuperServer ZFS Backup" [email protected]

然后只需使用以下命令查看当前状态:

tail -f logfile.log
Starting pull snapshots at 2024-03-12
Pulling: rpool/data -> tank/proxmox/rpool/data
NEWEST SNAPSHOT: autosnap_2024-03-12_00:00:41_daily
Sending incremental rpool/data@autosnap_2024-03-01_00:00:41_monthly ... autosnap_2024-03-12_00:00:41_daily (~ 4 KB):
Pulling: rpool/ROOT/pve-1 -> tank/proxmox/rpool/ROOT/pve-1
NEWEST SNAPSHOT: autosnap_2024-03-12_00:00:41_daily
Sending incremental rpool/ROOT/pve-1@autosnap_2024-03-01_00:00:41_monthly ... autosnap_2024-03-12_00:00:41_daily (~ 379.0 MB):
Pulling: tank_hdd/data -> tank/hdd/data
NEWEST SNAPSHOT: autosnap_2024-03-12_04:00:40_hourly
Sending incremental tank_hdd/data@autosnap_2024-03-02_00:00:41_daily ... autosnap_2024-03-12_04:00:40_hourly (~ 5.6 GB):
...

相关内容