我编写了一个 bash 脚本,用于每天晚上 4 点左右备份我的电脑。备份完成后,我的系统将重新进入睡眠状态。
目前我使用| tee -a $LOGFILE
来记录所有命令,但是记录不是实时的。当我的电脑进入睡眠状态时,它还没有写入文件,所以我需要唤醒我的电脑,然后才能看到 webdav 备份位置上的更改。
这非常烦人,因为我无法快速查找为什么它昨晚没有备份。
答案1
根据现有信息,这有点像是在黑暗中尝试,但是......如果脚本是发出返回睡眠状态的命令的脚本(哪一个?)问题可能是 stdio 缓冲。 所以我会
准备一个执行备份但不会进入睡眠状态的脚本,调用它
bck_script
。准备另一个让 PC 进入睡眠状态的脚本,将其调用
sleep_script
使用以下方式安排第三个脚本
bck_script | tee $LOGFILE
sync
sleep 30
sleep_script
... 睡眠可能有点过度了,但是好吧 --- 我真的不太信任sync
网络或“智能”(读取奇怪缓冲的) SSD。