注销/重启/关机/退出脚本,但如何做记录?
问题描述:
我有一个bash脚本来帮助你决定是否注销,重启,关闭,或者只是退出脚本,我已经有了一个基本的日志记录形式。但是它只记录被问到的问题,我怎样才能得到它以记录答复,并将时间/日期戳记发生在何时发生?注销/重启/关机/退出脚本,但如何做记录?
#!/bin/bash
log="/home/$USER/logs/reboot.txt"
killbrowser="/usr/bin/killall chrome; /usr/bin/killall chromium"
exec > >(tee -a $log) 2>&1
echo
{
read -n1 -p "$(tput setaf 1) Do you want to logoff, reboot, shutdown or just quit? [l/r/s/q] " lrsq
case "$lrsq" in
[Ll]*) $killbrowser; exit && exit;;
[Rr]*) $killbrowser; sudo /sbin/reboot $*; echo; exit;;
[Ss]*) $killbrowser; sudo /sbin/shutdown $*; echo; exit;;
[Qq]*) echo; exit;;
*)
esac
}
答
非常简单的解决方案可能是case
之前添加此行:
echo "Answer: $lrsq" >> $log
小念头:我不认为杀浏览器部分是无论如何必要发行重启或关机的前系统也会自动发出同样的信息。
要添加时间戳:
echo "$(date +%Y-%m-%d\ %H:%M:%S) Answer: $lrsq" >> $log
(使用man date检查格式选项)
谢谢,它记录了答复,但没有时间戳它。我更喜欢在重新启动/关闭之前明确地关闭浏览器,特别是它也会将我从“fluxbox”中注销。 – boudiccas
谢谢,就是这样做的,虽然我确实增加了另一个'回声; '在你的时间戳行之前强制日志中的新行。 – boudiccas