我是大学服务台的学生经理,我们广泛使用rsync来备份用户机器上的数据。但是,我注意到的一个问题是,很多时候,我们会有网络连接丢失(导致任何正在运行的转移到我们的备份服务器失败)。除非有人碰巧看到“破管”错误,否则转移会暂时停止,直到第二天有人碰巧看到。
我的问题是:如果上一个命令返回错误,有没有办法可以播放声音? Ubuntu或OS X上的解决方案都将受到赞赏。我知道在成功运行后使用&&
执行命令,而;
只是运行另一个命令,但我不确定在失败时发出声音/不知道是否{{1将在OS X / Ubuntu上一致地工作。
感谢您的帮助!
答案 0 :(得分:2)
Ubuntu和OS X都具有完整功能bash
,所以这里与陷阱管理没有区别。
我不详细了解Ubuntu,但在OS X上你可以使用下一个命令:
afplay some.mp3
- 可播放任何可以播放QuickTime的音频,mp3,wav,aiff等...... say -v Alex "message"
- 将发送到text2speech - 使用计算机生成的语音阅读消息bot命令可以用于:
rsync ... || say -v Alex "Hey, Hudston we have an rsync problem at $(hostname)", or
rsync ... || afplay "/Users/me/Music/iTunes/iTunes Media/Music/Michael Jackson/Bad/01 Bad.m4a"
您需要使用||
运行命令,但结果不成功。最佳形式是功能,如:
#!/bin/bash
err() {
say -v Alex "$@"
afplay "/path/to/music/file.mp3" &
echo "$@" >&2
return 1
}
rsync .. || err "rsync failed" || exit 1
答案 1 :(得分:1)
将其放入~/.bash_profile
PROMPT_COMMAND='(( $? )) && printf "\a"'