FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Ubuntu 11.04 sudo シェルスクリプト

ネットワークの再起動にsudoが必要で、それを書いたスクリプトにroot権限が必要だったため、root権限で自動起動するようにしてみました。
登録の仕方はこちらを参考にさせて頂きました。
http://yoshimov.com/?page=Ubuntu%2F%BC%AB%C6%B0%B5%AF%C6%B0%A4%B9%A4%EB%A5%B5%A1%BC%A5%D3%A5%B9%A4%CE%CA%D1%B9%B9
expectを使う方法もあったのですが、無難にinit.dに登録しました。

以下スクリプト
■ネットワーク再起動スクリプト
ra0:avahiが起動してしまった場合に、ネットワークを再起動します。

#!/bin/bash

count=0
# check
while test $count -lt 100
do
# check IP
r="`ifconfig | grep 192.168.113.`"
if test -n "${r}"
then
break
fi
# check ra0
r="`ifconfig | grep ra0:avahi`"
if test -n "${r}"
then
`ifconfig ra0 down`
`pidof wpa_supplicant | kill`
`/etc/init.d/networking restart`
fi
# count
count=`expr ${count} + 1`
sleep 1
done

■ネットワーク通知スクリプト
こちらは普通に"自動起動するアプリケーション"を使って登録しました。root権限で実行すると、通知先がないと怒られます。

#!/bin/bash

exec 3> >(zenity --notification --window-icon /usr/share/pixmaps/gnome-irc.png --listen --text 'ネットワーク接続中...')

count=0
# check
while test $count -lt 100
do
# check IP
r="`ifconfig | grep 192.168.113.`"
if test -n "${r}"
then
echo "message:ネットワークに接続しました。" >&3
break
else
if test `expr ${count} % 20` -eq 0
then
echo "message:ネットワークに接続中..." >&3
fi
fi
# check ra0
r="`ifconfig | grep ra0:avahi`"
if test -n "${r}"
then
echo "message:network restart..." >&3
count=0
fi
# count
count=`expr ${count} + 1`
sleep 2
done

if test $count -eq 100
then
echo "message:ネットワークの接続に失敗しました。" >&3
fi

exec 3>&-

コメントの投稿

管理者にだけ表示を許可する

プロフィール

sin

ニックネーム:sin

趣味でプログラムの作成などをしています。

Google+1
最新記事
カテゴリ
検索フォーム
リンク
最新コメント
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。