跑步时
cat /sys/block/sda/queue/scheduler
示例答案如下
noop anticipatory deadline [cfq]
我想编写一个脚本,如果cat
行 answer 包含
deadline
然后做X; 或者- 如果
deadline
没有出现,但包含noop
则执行是
那么,我该如何编写一个脚本:
检查
cat
答案如果
deadline
发生:sudo sed -i 's/^exit 0$/\necho deadline > \/sys\/block\/sda\/queue\/scheduler\necho 1 > \/sys\/block\/sda\/queue\/iosched\/fifo_batch\nexit 0/' /etc/rc.local
如果
deadline
不存在但“noop”存在则执行:sudo sed -i 's/^exit 0$/\necho noop > \/sys\/block\/sda\/queue\/scheduler\nexit 0/' /etc/rc.local
除此以外什么也没有。
答案1
添加到上面的 rc.localexit 0
SCHEDULER=$(cat /sys/block/sda/queue/scheduler)
case "$SCHEDULER" in
*deadline* )
echo 'deadline' > /sys/block/sda/queue/scheduler
echo '1' > /sys/block/sda/queue/iosched/fifo_batch
;;
*noop*)
echo 'noop' > /sys/block/sda/queue/scheduler
;;
*)
exit 0
esac
使用 sudo 运行脚本,或者如果它是 init 脚本,它将以 root 身份运行。
也可以看看http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html