gpt4 book ai didi

linux - 我的期望脚本关闭得太快

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:11 24 4
gpt4 key购买 nike

我正在尝试使用 expect 脚本将 borg 备份发送到远程服务器并删除旧的。发送备份的脚本工作得很好。但是,在删除任何备份之前,删除存档的脚本会超时。我已经确认手动运行该命令确实有效。关于它为什么超时的任何想法?

#!/usr/bin/expect

set folder [exec bash -c "ls -td /home/.snapshots/* | head -n 1"];
set otp [exec oathtool --totp -b KEY];

spawn borg prune --keep-hourly 5 --keep-daily 7 --keep-weekly 4 --keep-monthly 3 --keep-yearly 1 --prefix='home' ssh://user@host:PORT/ARCHIVE

expect "Enter passphrase for key '/root/.ssh/id_ed25519': "
send -- "PASSWORD\r"

expect "Verification code: "
send -- "$otp\r"

expect "Enter passphrase for key ssh://user@host:PORT/ARCHIVE: "
send -- "PASSWORD\r"

expect eof
wait

最佳答案

默认的 expect 超时是 10 秒,如果你的修剪操作运行超过 10 秒并且没有产生任何输出,expect 将会超时。

例如,您应该在脚本开头将超时设置为 2 分钟:

#!/usr/bin/expect

set folder [exec bash -c "ls -td /home/.snapshots/* | head -n 1"];
set otp [exec oathtool --totp -b KEY];
set timeout 120
[ ... ]

您也可以将您的期望脚本设置为 DEBUG,以便能够在未来看到它失败的原因:

#!/usr/bin/expect -d

关于linux - 我的期望脚本关闭得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com