VPS サーバーで /tmp を増やすための bash スクリプトに取り組んでいます。選択したオプションに対して同じコマンドを繰り返す必要なく、よりクリーンで効率的なものにしたいと考えています。現在の構造は次のとおりです。
#!/bin/bash
showMenu () {
echo "1) Increase /tmp size to 1 GB"
echo "2) Increase /tmp size to 2 GB"
echo "3) Quit"
}
while [ 1 ]
do
showMenu
read CHOICE
case "$CHOICE" in
"1")
/etc/init.d/mysql stop
/etc/init.d/httpd stop
/etc/init.d/cpanel stop
cp -af /var/tmp /var/tmp.bak
umount -l /var/tmp
umount -l /tmp
rm -f /usr/tmpDSK
dd if=/dev/zero of=/usr/tmpDSK bs=1M count=1k
mkfs.ext3 -F /usr/tmpDSK
mount -t ext3 -o nosuid,noexec,loop /usr/tmpDSK /tmp
mount -o bind,noexec,nosuid /tmp /var/tmp
cp -a /var/tmp.bak/* /tmp/
rm -rf /var/tmp.bak/
chmod 1777 /tmp
/etc/init.d/mysql start
/etc/init.d/httpd start
/etc/init.d/cpanel start
df -h
exit 1
;;
"2")
/etc/init.d/mysql stop
/etc/init.d/httpd stop
/etc/init.d/cpanel stop
cp -af /var/tmp /var/tmp.bak
umount -l /var/tmp
umount -l /tmp
rm -f /usr/tmpDSK
dd if=/dev/zero of=/usr/tmpDSK bs=1M count=2k
mkfs.ext3 -F /usr/tmpDSK
mount -t ext3 -o nosuid,noexec,loop /usr/tmpDSK /tmp
mount -o bind,noexec,nosuid /tmp /var/tmp
cp -a /var/tmp.bak/* /tmp/
rm -rf /var/tmp.bak/
chmod 1777 /tmp
/etc/init.d/mysql start
/etc/init.d/httpd start
/etc/init.d/cpanel start
df -h
exit 1
;;
"3")
exit 1
;;
esac
done
基本的に、このプロセス中に冗長コマンドを 1 回だけ開始したいと考えています。これを行うための最良の方法についてのアイデアを教えてください。
ありがとう。