我有个朋友经常把笔记本电脑放在无人看管的地方。这不是我,如果是我,小偷公开询问这个问题就是愚蠢的提示 :p。
我正在考虑设计一个可以提高音量并启动的警报器,以防有人拔掉我朋友的电脑插头并将其拿走。
当然,如果有人插上耳机或者取出电池,它就没用了,但如果发生不幸事件,这仍然可以挽救“生命”。
如果没有,是否有终端命令可以检查电池是否仍插着?也许可以为此制作一个简单的 bash 脚本。
答案1
以下 bash 脚本将每 5 秒检查一次电池状态。如果状态为“放电”,它将进入警报循环,在此循环中将主系统音量调到最大,并每 0.1 秒响一次终端铃声,直到状态恢复为“放电”以外的状态。尝试静音系统不会使脚本静音,因为它会在每次内循环迭代时将系统音量设置回最大值。较慢的外循环的目的是尽量减少状态检查对系统资源的影响。
#/usr/bin/env bash
cmd="upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -i state"
while true
do
result=`eval $cmd | awk '{print $2}'`
if [ $result == "discharging" ]
then
while [ $result == "discharging" ]
do
amixer set Master 100
echo -e '\a'
sleep .1
result=`eval $cmd | awk '{print $2}'`
done
fi
sleep 5
done
您可以通过运行crontab -e
然后添加类似的内容将其设置为在系统启动时运行@reboot /path/to/script
,其中路径指向该脚本。
您可以通过运行top
并找到具有非常低 PID 的 bash 进程(因为它在系统启动时就启动了),然后将其 PID 提供给 来终止该脚本kill
。
答案2
我之前的评论没有很好的解释,可能没有正确传达最初的信息,因此我会尽力写一个更易理解的答案。请注意,即使你代表朋友写,我也会写“你”,我指的是你的朋友。这是为了其他寻求此类解决方案的潜在读者和方便。
警报通常无法按预期工作,或者会伤害到人。警报应该提醒人们:这里发生了一些不应该发生的事情,请照顾好它。在这种情况下,你依靠其他人来承担你作为所有者不想承担的设备的责任。这太疯狂了。
如果您想让其他人为您处理某事,请礼貌地询问他们。如果您不信任他们,那么警报不会增加任何安全性,就好像除了潜在的攻击者之外没有其他人在那里,他/她不会在意警报是否响起。如果他/她只是对硬件感兴趣,他/她会关闭设备,假装是所有者然后走开。(还有几种针对软件和数据的安全攻击,其中一些已由 Darren Kitchen 在 HAK5 上展示。)这是警报不发出警报因此不起作用的常见情况。我知道,有一种情况是警报非常强大,它会对人造成身体伤害并可能使攻击者远离。也就是说,持续 4-5 秒。这就是关闭设备所需的时间。但是,您有什么权利伤害坐在那里的其他人,这不会对您造成伤害,只是为了给设备带来一些虚假的安全感,而您自己作为所有者不想承担应有的责任?
还要注意的是,有些人像我一样,通过将有问题的设备扔出窗外、施加暴力或采取其他行动,设法将这 5 秒缩短到几乎为零。还要注意的是,无论去哪里,我都会随身携带降噪耳塞,如果这种虚假的 (IT) 安全感流行起来,可能会有更多人这样做。
报警器在公共场所不起作用,监控摄像头也不起作用。人们在摄像头的监视下被抢劫和骚扰的案例屡见不鲜。因此:随身携带设备是最好的保护。
我不想指责任何人故意伤害他人,也不想让别人觉得我沮丧,对社会感到厌烦。我只是要求你至少对自己的东西负责,因为如果你不这样做,其他人也会以同样的方式看待他们的东西和其他人。你可以想象这会把我们引向何方。