2009年2月27日金曜日

ubuntu Intrepid Ibex 8.10 上に opnejdk6 + tomcat6 で jsp な環境

ubuntu Intrepid Ibex 8.10 上に opnejdk6 + tomcat6 で jsp な環境

[目標]
ubuntu Intrepid Ibex 8.10 上に opnejdk6 + tomcat6 な環境をつくる
apache2とtomcat6はproxy proxy_ajpで連携させる

2009-june-18 UPDATE

[環境]
Ubuntu Intrepid Ibex 8.10
VirtualBox 2.1.x
USB 104Key (US)
Apache2はインストール済み

ipaddress:hoge.fuga.fugu.fugo



[したこと]

1. インストール

[OpenJDK6]
$ sudo apt-get install openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-6-jdk openjdk-6-doc openjdk-6-demo


[Tomcat6]
$ sudo apt-get install tomcat6
$ sudo apt-get install tomcat6-admin tomcat6-webapps


2. Tomcat6 の設定


環境変数の設定
$ sudo vi /etc/default/tomcat6

#TOMCAT6_USER=tomcat6 # 修正前
TOMCAT6_USER=tomcat6 # 修正後

#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk # 修正前 ここ"コメントアウト解除だけだ"と誤解しやすい
JAVA_HOME=/usr/lib/jvm/java-6-openjdk # 修正後

#CATALINA_BASE=/var/lib/tomcat6 # 修正前
CATALINA_BASE=/var/lib/tomcat6 # 修正後


server.xmlの編集

$ sudo vi /etc/tomcat6/server.xml
コメントアウトされている部分を有効にする

<Connector port="8009" protocol="AJP/1.3" redirectPort"8443" />


tomcat-users.xmlの編集
$ sudo vi /etc/tomcat6/tomcat-users.xml

以下のようにコメントアウトされている
本番時はパスワードなど変更する
<!--
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
-->

コメントアウトされている部分を有効にする

<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>


admin managerを使う場合は追加する
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin"/> #追加
<role rolename="manager"/>#追加
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/> #追加
</tomcat-users>


3.Apache2の設定

proxy proxy_ajpの有効化

$ sudo a2enmod proxy
$ sudo a2enmod proxy_ajp

Apache2の設定

/etc/apache2/cconf.d/tomcat を作成して jsp-test jsp-sample のある場所をApacheに指示する

$ sudo vi /etc/apache2/conf.d/tomcat

----------追加開始----------



<Location /jsp-test/>
ProxyPass ajp://localhost:8009/jsp-test/
Order allow,deny
Allow from All
</Location>

<Location /jsp-sample/>
ProxyPass ajp://localhost:8009/jsp-sample/
Order allow,deny
Allow from All
</Location>

----------追加終了----------


4. 自作jspの置き場を作る

/var/lib/tomcat6/conf/Catalina/localhost/jsp-test.xml を編集してjsp-testのある場所をtomcatに指示する

$ sudo mkdir /usr/share/tomcat6/webapps/jsp-test

$ sudo cp -r /usr/share/tomcat6/webapps/default_root/META-INF /usr/share/tomcat6/webapps/jsp-test/META-INF

$ sudo vi /var/lib/tomcat6/conf/Catalina/localhost/jsp-test.xml

<Context path="/jsp-test" docBase="/usr/share/tomcat6/webapps/jsp-test" debug="0" privileged="true" allowLinking="true">
</Context>

$ sudo ln -s /var/lib/tomcat6/conf/Catalina/localhost/jsp-test.xml /usr/share/tomcat6/webapps/jsp-test.xml


テスト用jspを置いてみる
$ sudo vi /usr/share/tomcat6/webapps/jsp-test.xml/hello.jsp
--------script-start--------
<html>
<head>
<title>Hello World JSP</title>
</head>
<body>
<%
String s= "Hello World";
out.println(s);
%>
</body>
</html>
---------script-end---------



/usr/share/tomcat6/webapps/jsp-sample.xml を編集してjsp-sampleのある場所をtomcatに指示する


$ sudo mkdir /var/www/jsp-sample

$ sudo cp -r /usr/share/tomcat6/webapps/default_root/META-INF /var/www/jsp-sample/META-INF

$ sudo vi /var/lib/tomcat6/conf/Catalina/localhost/jsp-sample.xml

<Context path="/jsp-sample.xml" docBase="/var/www/jsp-sample" debug="0" privileged="true" allowLinking="true">
</Context>


テスト用jspを置いてみる
$ sudo vi /var/www/jsp-sample/hello.jsp
--------script-start--------
<html>
<head>
<title>Hello World JSP</title>
</head>
<body>
<%
String s= "Hello World";
out.println(s);
%>
</body>
</html>
---------script-end---------



tomcat Apache2の順番で 再起動
$ sudo /etc/init.d/tomcat6 restart
$ sudo /etc/init.d/apache2 restart


アクセスしてみる
http://hoge.fuga.fugu.fugo:8080/
http://hoge.fuga.fugu.fugo/jsp-test/hello.jsp
http://hoge.fuga.fugu.fugo/jsp-samplet/hello.jsp

[注意]

JAVA_HOMEの修正忘れ
"コメントアウトを解除すればよいだけだ"と見間違えた
修正前
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk
修正後
JAVA_HOME=/usr/lib/jvm/java-6-openjdk


jspを実行するディレクトリにはMETA-INFが必要
5.5のときはMETA-INFが必要なかった
6はMETA-INFが必要
default_rootからコピーした
$ sudo cp -r /usr/share/tomcat6/webapps/default_root/META-INF /var/www/jsp-sample/META-INF


5.5では8180だったポートが6では8080に変更

1次情報を読んでいないので、とりあえず動いた状態。間違い、誤解、もっとよい方法があるやも知れない


[参考]
http://powerpower.cocolog-nifty.com/blog/2007/11/ubuntu_tomcat55.html
http://blog.goo.ne.jp/jakaodava/e/829793f4864c2d239586fc536c14bfb7

2009年2月25日水曜日

IPtableでUbuntuのFirewallを構築する

[目標]
IPtableでUbuntuのFirewallを構築する


[環境]
Ubuntu Hardy Heron 8.04
VirtualBox 2.1.x
USB 104Key (US)


[したこと]

iptablesでサーバーのファイアウォールを構築する - Hatena::Diary::Ubuntu
http://d.hatena.ne.jp/Ubuntu/20080128/1201462048

上記リンクで公開されているスクリプトを利用

大変便利でしたありがとう!



inst_iptables.sh と iptables を同じディレクトリに作成する

長いほうのスクリプトを iptables という名前で保存する

$ vi iptables

XDMCP VNC 等を利用するための追記

# TCP177番ポート(XDMCP)へのアクセスを許可
#$IPTABLES -A INPUT -p udp --dport 177 -j ACCEPT
$IPTABLES -A INPUT -s $LOCALNET -p udp --dport 177 -j ACCEPT

# TCP5900番ポート(VNC)へのアクセスを許可
$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 5900 -j ACCEPT
#$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 5901 -j ACCEPT

# TCP631番ポート(CUPS)へのアクセスを許可
$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 631 -j ACCEPT

# TCP901番ポート(SWAT)へのアクセスを許可
$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 901 -j ACCEPT

# TCP3689番ポート(DAAP)へのアクセスを許可
$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 3689 -j ACCEPT

# TCP10000番ポート(Webmin)へのアクセスを許可
$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 10000 -j ACCEPT

# TCP41952番ポート(DNLA)へのアクセスを許可
$IPTABLES -A INPUT -s $LOCALNET -p tcp --dport 41952 -j ACCEPT

sambaを利用しているので

# 外部からのUDP137,138,TCP139,445番ポート(SMB)へのアクセスを許可
# ※Sambaサーバーを公開する場合のみ
の下4行を有効化する




短いほうのスクリプトを inst_iptables.sh という名前で保存する

$ vi inst_iptables.sh

以下2行削除
test -f $SCRIPTS/iptables || exit 1
sudo vim /etc/network/if-pre-up.d/iptables

最後の行に追記
sudo /etc/init.d/netwroking restart

inst_iptables.sh に実行権を付与
$ sudo chmod +x inst_iptables.sh

inst_iptables.sh と iptables が同じディレクトリにあることを確認

inst_iptables.sh の実行

$ sh inst_iptables.sh




[注意]

inst_iptables.sh と iptables が同じディレクトリにあることを確認

以下 リモートから設定して間違えると、ホストまで一人で歩いていかなければならない。

TCP22番ポート(SSH)へのアクセスをIPAddressを指定して許可する
$IPTABLES -A INPUT -s 192.168.0.2 -p tcp --dport 22 -j ACCEPT

TCP22番ポート(SSH)へのアクセスをLOCALHOSTの範囲を指定して許可する
# ※長いほうのスクリプト11行めで 変数$LOCALHOSTを定義している
$IPTABLES -A INPUT -s $LOCALHOST -p tcp --dport 22 -j ACCEPT


[その他]

先日インストールしたfirestarterは削除済み
削除理由
 WindowsからUbuntuにアクセスするとき サーバー名/ディレクトリ でアクセスできない
 WindowsからUbuntuにアクセスするとき IPアドレス/ディレクトリ でアクセスできる
 IPアドレスで指定するのはやりたくない

[参考]

iptablesでサーバーのファイアウォールを構築する - Hatena::Diary::Ubuntu
http://d.hatena.ne.jp/Ubuntu/20080128/1201462048

2009年2月24日火曜日

UbuntuでSAMBA3を使いWindowsとファイル共有する

[したいこと・しりたいこと]
ubuntuでsambaserverを立てる
user01はwindowsからubuntuのホームディレクトリにアクセスできる
user01はwindowsから共有フォルダpublicにアクセスできる
samba3らしいやり方で、設定する

[環境]
Ubuntu Hardy 8.04
username:user01
USB 104Key (US)
samba3.2.3

Windows XP SP3
username:user01
USB 104Key (US)



1. sambaの設定

パッケージリストを更新する
$ sudo apt-get update

sambaをインストールする
$ sudo apt-get install samba

共有ディレクトリにアクセスできるグループを作る
$ sudo addgroup public

共有設定を入れるディレクトリの作成
$ sudo mkdir /etc/samba/shares
$ sudo chgrp public /etc/samba/shares
$ sudo chmod 1770 /etc/samba/shares

smb.confを編集する

$ sudo vi /etc/samba/smb.conf

[global]
#linuxの文字コード
unix charset = UTF-8
#SWATの文字コード
display charset = UTF-8
#Windowsの文字コード(SJIS)
dos charset = CP932
#workgroup名の確認
workgroup = WORKGROUP
#共有ディレクトリの設定情報の置き場(共有ディレクトリの場所ではない)
usershare path = /etc/samba/shares
usershare max shares = 10

#### Networking ####
#追加(内部からのみアクセスできるようにする)
hosts allow = 192.168.1. 127. 

####### Authentication #######
#コメントアウトを解除
security = user


sambaの再起動
$ sudo /etc/init.d/samba restart



2.共有ディレクトリの用意


共有ディレクトリを作る
$ sudo mkdir /home/public
$ sudo chgrp public /home/public
$ sudo chmod 770 /home/public


共有ディレクトリをsmbaに登録する
書式 net usershare add 共有名 共有場所 コメント
$ sudo net usershare add public /home/public coment


共有ディレクトリの設定のリストを見る
$ sudo net usershare list

共有ディレクトリの情報を見る
$ sudo net usershare info public
[usershare1]
path=/home/public
comment=comment1
usershare_acl=Everyone:R
guest_ok=n


共有ディレクトリに書き込み権限を与える
書式 net usershare add 共有名 共有場所 コメント ユーザー:パーミッション,ユーザー:パーミッション

パーミッションの種類
R:読み取り専用
D:拒否
F:フルコントロール

$ sudo net usershare add public /home/public coment everyone:R,user01:F


sambaの再起動
$ sudo /etc/init.d/samba restart



共有の設定を削除する
$sudo net usershare delete public




3. 共有ディレクトリにアクセスするユーザーの設定

sambaにユーザーの登録
$ sudo pdbedit -a -u user01

グループpublicににユーザーの登録
$ sudo adduser user01 public

再ログイン



sambaにユーザーの削除
$ sudo pdbedit -x user01




4. 補足 smbpasswdデータベースからtdbsamデータベースへの移行


smbpasswdデータベースからtdbsamデータベースへの移行
pdbedit -i smbpasswd:/etc/smbpasswd -e tdbsam:/etc/samba/passdb.tdb

確認のため、リストビューする。
pdbedit -L




[注意]


[参考]


[ThinkIT] 第4回:Samba 3.0.20以降の新機能を追え(3) (1/3)
http://www.thinkit.co.jp/free/article/0707/7/4/



Sambaサーバ構築、5つのべからず:2008年版(2/2)
http://www.atmarkit.co.jp/flinux/special/samba_n/samba_nb.html

2009年2月23日月曜日

Ubuntuにアンチウィルスソフトを導入する

[目標]
アンチウィルスソフトを導入する

[環境]
Ubuntu Hardy 8.04
VirtualBox 2.1.x
USB 104Key (US)

AVG Anti-Virus Free Edition 7.5 for Linux
Debian based distributions (Debian, Ubuntu)
(avg75fld-r51-a1243.i386.deb) 7.5.51



[したこと]

AVG for Linux WorkstationをGUIでアップデートできるようにする

Gnomeメニュー -> システム -> 設定 -> メインメニュー -> アクセサリ -> AVG for Linux Workstationを選択

プロパティ(P)を押す
コマンド欄の avggui を gksu avgguiに変更
閉じる(C)を押す


AVG for Linux WorkstationService のスケジュールを設定する

AVG for Linux WorkstationService メニュー -> Program settings -> Scheduler

Update schedukeでアップデートの時間、曜日の指定
periodically check for update -> On
Start at : 08:00
daily : On

Testscheduleで何時、何処をスキャンするか指定


コマンドラインでの使い方

ユーザーのホームディレクトリ全部をスキャンする
$ avgscan /home/user

ユーザーのデスクトップをスキャンする
$ avgscan /home/デスクトップ


[注意]

常駐でリアルタイムスキャンはしない
スケジュールに沿ったスキャン、アップデートはできる

$ avgscan /home/user するときの注意



$ avgscan /home/user したときに ./gvfsn にマウントされているフォルダも調べる
/home/user/.gvfs/"sambaでマウントされた共有フォルダ名"@"sambaサーバー名"/xxxx.exe
/home/user/.gvfs/"sambaでマウントされた共有フォルダ名"@"sambaサーバー名"/xxxx.msi


意図せずそうなると時間とリソースの無駄




[参考]

独学Linux:Ubuntuで使えるウィルス対策ソフト - livedoor Blog(ブログ)
http://blog.livedoor.jp/vine_user/archives/51275180.html

AVG Free - Download installation files & documentation
http://free.avg.com/download?prd=afl

Ubuntuにfirewallを導入する

[目標]
Firestarterを導入する
Firestarterを最小化する
Firestarterを自動起動させる

[環境]
Ubuntu Hardy 8.04
VirtualBox 2.1.x
USB 104Key (US)
Firestarter 1.0.3

Hostname:Blackperl
user01:jack
user02:will



Firestarterを導入する

$ sudo apt-get install firestarter




Firestarterの起動エラー
eth0を認識しない

$ sudo vi /etc/firestarter/firestarter.sh

 export LANG=C
 #3行目に export LANG=C と追記

起動するか確認
$ sudo /usr/sbin/firestarter




Firestarterを閉じた際に最小化しパネルアイコン表示にする

Firestarterを既に起動した状態にする

編集 -> 設定 -> インターフェース -> ウィンドウを閉じたら最少化してパネル通知エリアに格納する -> チェック
適用(A)を押す


スタートアップ時に自動的にFirestarterを起動させる

システム -> 設定 -> セッション -> 自動起動するプログラム -> 追加(A) -> 押す

以下のとおり入力。

名 前 :Firestarter
コマンド:sudo firestarter --start-hidden &
コメント:FirestarterGUIあり
保存(S)を押す。


visudoの設定

$ sudo visudo

以下2行追記

jack ALL= NOPASSWD: /usr/sbin/firestarter
will ALL= NOPASSWD: /usr/sbin/firestarter




Ubuntu 8.04 でFirestarterを起動する方法 - 山河に在りて
http://d.hatena.ne.jp/m_yanagisawa/20080814/p2

Firestarterの起動エラー - Winux/Lindows
http://mypace75.blog92.fc2.com/blog-entry-122.html

Firestarter設定他 - そえあげ
http://d.hatena.ne.jp/hiroyuki_t/20070306

Ubuntu:Feisty ja/AddOnApplications -
http://ubuntuguide.org/wiki/Ubuntu:Feisty_ja/AddOnApplications#Firewall_.28Firestarter.29.E3.82.92.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB.E3.81.99.E3.82.8B.E3.81.AB.E3.81.AF

2009年2月21日土曜日

Ubuntuをsambaサーバーにする

KRAKENBEAL RECORD: UbuntuでSAMBA3を使いWindowsとファイル共有する
http://krakenbeal.blogspot.com/2009/02/ubuntusamba3windows.html
上記の方が2009年的に新しいsamba3的なRecordです

以下の情報は2009年的に古くsamba2的な情報です



[したいこと・しりたいこと]
ubuntuでsambaserverを立てる
user01はwindowsからubuntuのホームディレクトリにアクセスできる
user01はwindowsから共有フォルダshareにアクセスできる


[環境]
Ubuntu Hardy 8.04
username:user01
USB 104Key (US)

Windows XP SP3
username:user01
USB 104Key (US)


[したこと]

1. 共有フォルダの設定

共有フォルダshareの作成
$ sudo mkdir /var/samba/share

グループshareの作成
$ sudo groupadd share

共有フォルダshareのアクセス権の設定
$ sudo chown -R root:share /var/samba/share
$ sudo chmod -R 755 /var/samba/share




2. sambaの設定

パッケージリストを更新する
$ sudo apt-get update

sambaをインストールする
$ sudo apt-get install samba

smb.confを編集する
$ sudo vi /etc/samba/smb.conf

[global]
unix charset = UTF-8
display charset = UTF-8 #SWATの文字コード
dos charset = CP932 #Windowsの文字コード(SJIS)
workgroup = WORKGROUP #workgroup名の確認
hosts allow = 192.168.1. 127.  #追加(内部からのみアクセスできるようにする)

[homes]
browseable = no #行頭の;をとり有効にする yesにしない
writable = yes  #追記してuser01が書き込みできるようにする

[share] # ネットワーク上での共有名
path = /var/samba/share # 共有するサーバ上のディレクトリ
browseable = yes #
writable = yes # 書き込み許可
create mask = 0664 # 作成されるファイルのパーミッションマスク
force create mode = 0664 # 作成されるファイルのパーミッション
directory mask = 0775 # 作成されるディレクトリのパーミッションマスク
force directory mode = 0775 # 作成されるディレクトリのパーミッション
valid users = user01, user02 # アクセスできるユーザ(スペース区切りで複数指定可能)
valid group = @share #@shareにするとグループshare全員になる


sambaの再起動
$ sudo /etc/init.d/samba restart


3. 共有フォルダにアクセスするユーザーの設定

sambaにユーザーの登録
$ sudo smbpasswd -a user01

user01をグループshareに登録
$ sudo adduser user01 share


[注意]
user01がグループshareを含めた複数のグループに所属するひつようがある場合
 $ sudo /usr/sbin/usermod -G share user01
としない
その場合はidで確認したuser01のグループをすべてとグループshareを列挙しなければならない
$ sudo /usr/sbin/usermod -G user01,group01,group02....share user01

usermodを使うという説明でこのことを付記していないものがある。
誤ったコマンドを実行した場合、sudoできない、gnomeメニューからsynaptic,login画面,アプリケーションの追加と削除などが消えるなど不都合が起きる



[参考]
http://park15.wakwak.com/~unixlife/linux/de-user.html

Firefoxのアドオン

NoScript
https://addons.mozilla.jp/firefox/details/722

Greasemonkey
https://addons.mozilla.jp/firefox/details/748

Adblock Plus
https://addons.mozilla.jp/firefox/details/1865

Link Alert
https://addons.mozilla.jp/firefox/details/3199

Make Link
https://addons.mozilla.jp/firefox/details/142

text/plain
https://addons.mozilla.jp/firefox/details/1864

テキストリンク
https://addons.mozilla.jp/firefox/details/1939

Table2Clipboard
https://addons.mozilla.jp/firefox/details/1852

DownThemAll!
https://addons.mozilla.jp/firefox/details/201

Extended Cookie Manager
https://addons.mozilla.org/ja/firefox/addon/1243

Cookie Button
https://addons.mozilla.jp/firefox/details/1247

CookieMan Context
https://addons.mozilla.jp/firefox/details/4462

Stealther
https://addons.mozilla.org/en-US/firefox/addon/1306

Web Developer
https://addons.mozilla.org/ja/firefox/addon/60

Firebug
https://addons.mozilla.jp/firefox/details/1843

googletoolbar
http://www.google.com/tools/firefox/toolbar/FT3/intl/ja/index.html

Video DownloadHelper
https://addons.mozilla.org/ja/firefox/addon/3006


動画を楽しもう!
(Youtubeでダウンロード可能なファイル形式が一目瞭然になるGreasemonkeyScript)
http://creazy.net/2008/11/youtube_downloader_greasemonkey.html

YouTube高画質化bookmarklet
http://d.hatena.ne.jp/riocampos/20080331/1206963713

http://note.openvista.jp/2007/filtering-google-result/

http://userscripts.org/scripts/show/12504

Pearl Crescent Page Saver
http://pearlcrescent.com/products/pagesaver/

ScrapBook
https://addons.mozilla.jp/firefox/details/427

Xを飛ばす

遠くのUbuntuのX画面を,自分のマシンに飛ばす方法

[環境]

hostname:"Terminator"
OS:Ubuntu Hardy 8.04
IPAddress:192.168.0.2
username:"T-800"
USB 104Key (US)

hostname:"Predator"
OS:Ubuntu Hardy 8.04
IPAddress:192.168.0.3
username:"Alien"
USB 104Key (US)



[したこと]

"Terminator"での設定作業

ssh_config の設定
ForwardX11Trusted yes の項目を有効にする

$ sudo vi /etc/ssh/ssh_config

#ForwardX11Trusted yes //変更前
ForwardX11Trusted yes //変更後


sshd_config の設定
X11Forwarding yes の項目が有効であることを確認

$ cat /etc/ssh/sshd_config

sshの再起動
$ sudo /etc/rc.d/init.d/sshd restart


"Predator"からのログインの仕方

"Predator"から"Terminator"に"T-800"でログインする
$ ssh -X T-800@192.168.0.3
T-800のパスワードの入力
コマンドプロンプトが
Alien@Predator:~$
から
T-800@Terminator:~$
に変化する

"Terminator"のgeditを"Predator"に表示する
T-800@Terminator:~$ gedit
"Predator"にgeditが表示される

"Terminator"からログアウトする
T-800@Terminator:~$ exit
コマンドプロンプトが
T-800@Terminator:~$
から
Alien@Predator:~$
に変化する


[参考]

Linux から Windows へ X をとばす
http://www.ep.sci.hokudai.ac.jp/~tutaka/x_for_windows.htm

sshでX画面を飛ばす設定
http://syshp.tm.chiba-u.jp/~okawa/index.php?cmd=read&page=Linux/ssh

http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%83%B3VS%E3%83%97%E3%83%AC%E3%83%87%E3%82%BF%E3%83%BCVS%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8D%E3%83%BC%E3%82%BF%E3%83%BC

指定した時間になったらmp3を再生する

[したいこと・しりたいこと]
指定した時間になったらmp3を再生する
昼にUbuntuに、「お昼ですよー」と言わせたい
夕方ににUbuntuに、「下校の時間ですよー」と言わせたい

[環境]
Ubuntu Hardy 8.04
VirtualBox 2.1.x
USB 104Key (US)

alarm.sh alarm.mp3 の保管場所は /var/opt/ とする
標準の再生デバイスはALSAとする



[したこと]

1. コーデック等の導入
$ sudo apt-get -y install flac lame soundconverter gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-schroedinger gstreamer0.10-plugins-good gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-pitfdll ubuntu-restricted-extras

※表示の関係で1行に見えないかもしれませんが、1行です
※コピペして、codec.shとでも名前をつけて chmod +x chodec.sh として実行権をつけて sudo sh codec.sh とすると 楽できるかもしれません


2. atコマンドで 指定時間に再生する

$ sudo vi /var/opt/alarm.sh

-----start.alarm.sh-----

mpg123 -q /var/opt/alarm.mp3

------end.alarm.sh------

$ sudo chmod +x /var/opt/alarm.sh

例)
5分後に再生
$at -f /var/opt/alarm.sh now +5 minutes
お昼に再生
$at -f /var/opt/alarm.sh 12:00


3. cronで 指定時間に繰り返し再生

crontabの編集
$ sudo vi /etc/crontab

例)30分ごとに再生
# m h dom mon dow uer command
#分 時 日 月 曜日 ユーザー コマンド
0,30 * * * * root /var/opt/alarm.sh

再起動


[注意]

標準の環境ではmp3の再生ができない

$at -f /var/opt/alarm.sh とか $at -f /var/opt/alarm.sh +5 minutes など、間違ったコマンドを発行すると 音が出なくなった。
(再起動で対応)



[参考]


http://ash.jp/linux/unyo/09.htm

http://www.webhtm.net/unix/cmd/at_cmd.htm

http://x68000.q-e-d.net/~68user/unix/pickup?at

VirtualBoxとVMWareWorkStationのスナップショットの管理の違い

[作成]
VirtualBox
作成中に操作はできない

VMWareWorkStation
作成中に操作ができる
(操作は作成されたスナップショットには記録されない
スナップショット作成の後の出来事扱い)


[世代管理]
VirtualBox
snap1-----snap2-----snap3-----snap4-----snap5

VMWareWorkStation
snap1-----snap2-----snap4-----snap6
|
|
snap3-----snap5-----snap8
|
|
snap7-----snap9


VMWareWorkStationはツリーにできる
VirtualBoxはsnap2など途中の状態を復元できない
VirtualBoxでsnap2を復元するにはsnap3からsnap5を破棄する必要がある


[復元]
VirtualBox
いったんGuestOSをシャットダウンしなければならない


VMWareWorkStation
GuestOSが起動中でも、復元できる
復元中に操作ができる

Ubuntu on VirtualBox RemotControl Outline

Ubuntu on VirtualBox RemotControl Outline

[やりたいこと・しりたいこと]
遠くにおいてあるPCに仮想マシンを複数起動する
仮想マシンを手元のWindowsマシンから操作する

[環境]
Physical Machine A
Host OS Ubuntu 8.04 Hardy
Guest OS Ubuntu 8.04 hardy

Physical Machine B
Windows XP



[手順]


Physical Machine Aに HostOSのインストール


Physical Machine AのHostOSのリモートログインの設定
システム システム管理 ログイン画面
ログイン画面の設定 リモート 簡易型(フェイスブラウザ付き)

Physical Machine AのHostOSにVirtualBoxのインストール
virtualbox 2.1.x install


Physical Machine AのHostOSにOpenSSH-Serverのインストール

Physical Machine AのHostOSに、Physical Machine BのXmingでリモートログイン

Physical Machine AのHostOSのVirtualBoxにGuestOSのインストール

Physical Machine AのGuestOSのリモートログインの設定

Physical Machine AのGuestOSの終了

Physical Machine AのHostOSへのPhysical Machine BのXmingでリモートログイン終了

Physical Machine AのHostOSにPhysical Machine BのPoderosaでリモートログイン

Physical Machine AのGuestOSのCUIでの起動
VBoxManage startvm "ubuntu-guest" -type vrdp

Physical Machine AのGuestOSにPhysical Machine BのXmingでリモートログイン

Physical Machine AのGuestOS上で作業

Physical Machine AのGuestOSの終了

Physical Machine BのXmingの終了

Physical Machine AのHostOSの終了

Physical Machine BのPoderosaでリモートログイン終了




[注意点・はまった箇所]

discardに関する注意
snapをとったあとにhostをrebootせずにコマンドラインからのdiscardするのは成功する
snapをとったあとにhostのrebootをした場合コマンドラインからのdiscardに失敗する。
対策 hostをrebootしたばあい hostにguiでリモートログインして guiでスナップを破棄する

リモートログインの設定に関する注意
Ubuntuのリモートログインの設定で簡易型を選ぶこと。
ホストと同じだとログインできないことがあった。
(HostはPhysical Machine AにインストールしたOSのこと。ホストはリモートログインする対象のオペレーティングシステムのこと。誤解しないよう注意)

電源オフに関する注意
GuestOSに
$ VBoxManage controlvm "Ubuntu-Guest" poweroff
$ VBoxManage controlvm "Ubuntu-Guest" acpipowerbutton
するということは、イメージ的に物理マシンの電源ボタン押しで電源を落とすと同義。
GuestOSの電源を切るには、仮想マシンにsshでリモートログインするか、
xmingのウィンドウ内部にターミナルを開いて
$ sudo shutdown -h now
するべき

GuestOSがWindows評価版だったら?
GuestOSにUltraVNCSeverをいれる
操作マシンにUltraVNCClientを入れる

GuestOSがWindows評価版で操作マシンUbuntuがだったら?
Windows評価版にUltraVNCSeverをいれる
Ubuntunの「アプリケーション」の「インターネット」の
「リモートデスクトップビューワ」を使用する

[なぜ1台にまとめないの?]
やり方覚えておけば、Host上で複数の仮想マシンを走らせることができる。
通常作業のPCと分離できるなら、通常作業に支障が出ない

[なぜHostOSにXmingでログインしてGUIで作業だけではいけないの?]
HostOSのGnomeにメモリをまわすより、GuestOS上のプログラムに割り当てたい

[参考]
Download VirtualBox for Linux Hosts
http://www.virtualbox.org/wiki/Linux_Downloads

Ubuntu: Windows XPマシンをX端末として使用する
http://dolphin2005.blog.so-net.ne.jp/2008-02-27

Windows から Xming を使用した Linux サーバを利用する方法
http://dgegw3.nifs.ac.jp/gecev/xming/Xming.htm

UltraVNC 日本語版
http://kp774.com/soft/uvnc_jp/

VirtualBoxをCUIで操作したい

VirtualBoxをCUIで操作したい

snapshotのコマンドが新バージョンで変更されました。
新しい情報は以下に書きました。
KRAKENBEAL RECORD: VirtualBox 3.1.4 を CUIで操作したい
http://krakenbeal.blogspot.com/2010/03/virtualbox-314-cui.html

[環境]
Ubuntu Hardy Heron 8.04
virtualbox 2.1.x

Guestの名前はUbuntu-Guestとする



[virtualboxのインストール]

パッケージソースの追加
$ sudo vi /etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian intrepid non-free
deb http://download.virtualbox.org/virtualbox/debian hardy non-free
deb http://download.virtualbox.org/virtualbox/debian gutsy non-free


パッケージのキーの取得
$ sudo apt-key add sun_vbox.asc

or

$ sudo wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -

virtualboxのインストール
$ sudo apt-get install virtualbox-2.1

virtualboxのファイルのある場所
/home/user_name/.VirtualBox


Guest Additionsをインストール
VirtualBoxの「デバイス」メニューから「Guest Additionsのインストール」を選択
Guest AdditionsのCDイメージが自動的にマウントされる

$ sudo cd /media/cdrom0
$ sudo sh VBoxLinuxAdditions-x86.run

しばらくしてプロンプトが帰ってきたら ubuntuを再起動 

$ sudo reboot


[VirtualBoxのコマンドラインでの操作]

VMがGUIで起動
$ VBoxManage startvm "Ubuntu-Guest" -type gui

VMがバックグラウンドで起動
$ VBoxManage startvm "Ubuntu-Guest" -type vrdp

うまく起動しない場合
$ VBoxHeadless -startvm "Ubuntu-Guest"

スナップショット snap1-stable-system を作成する
$ VBoxManage snapshot "Ubuntu-Guest" take snap1-stable-system

最新のスナップショット状態に復帰させる
$ VBoxManage snapshot "Ubuntu-Guest" discardcurrent -state

最後から2番目のスナップショットに戻す
$ VBoxManage snapshot "Ubuntu-Guest" discardcurrent -all

Snapshotのlistを表示する
$ VBoxManage showvminfo "Ubuntu-Guest"

指定のSnapshot snap1-stable-system を削除する
$ VBoxManage snapshot "Ubuntu-Guest" discard snap1-stable-system

電源をオフ
$ VBoxManage controlvm "Ubuntu-Guest" poweroff
$ VBoxManage controlvm "Ubuntu-Guest" acpipowerbutton

VMのUUIDの確認
$ VBoxManage list vms

VMの割り当てメモリ量を512MBに増やす
$ VBoxManage modifyvm "Ubuntu-Guest" -memory "512MB"

[注意点・はまった箇所]

discardに関する注意
snapをとったあとにhostをrebootせずにコマンドラインからのdiscardするのは成功する
snapをとったあとにhostのrebootをした場合コマンドラインからのdiscardに失敗する。
対策 hostをrebootしたばあい hostにguiでリモートログインして guiでスナップを破棄する

[参考]
http://www.itmedia.co.jp/enterprise/articles/0812/18/news092.html

2009年2月20日金曜日

UbuntuでLAMP環境

[目標]
AMP環境の構築をする

[環境]
Ubuntu 8.04 Hardy on VirtualBox 2.1.4



[手順]

1. 最新のパッケージリストを取得する
$ sudo apt-get update

2. apache2のインストール
$ sudo apt-get install apache2


3.1 MySQLのインストール
$ sudo apt-get install mysql-server


3.2 MySQLユーザーの追加

MySQLへログイン
$ mysql -u root -p

MySQLへログインしたユーザーが使用するデータベースの追加
mysql > create database db_mysqluser;

MySQLへログインするユーザーを追加

mysql > grant all on db_mysqluser.* to mysqluser@localhost identified by 'mysqluser_passwd';

(mysql > grant 権限のリスト on データベース名.テーブル名 to ユーザ名@ホスト名 identified by 'パスワード';)

MySQLからログアウト
mysql > exit


4. php5のインストール
$ sudo apt-get install php5 php5-gd php5-mysql php5-mcrypt mcrypt


[その他]

Apache2の設定ファイルの場所
/etc/apache2/httpd.conf
/etc/apache2/sites-available/default

php5の設定ファイルの場所
/etc/php5/apache2/php.ini

ゴミ箱の消せないファイルを消す

Gnomeからゴミ箱に移したファイルが消せない。
理由は アクセス権の設定がめちゃくちゃだから。

そんなときの 救済コマンド。

[環境]
Ubuntu 8.04 Hardy on VirtualBox 2.1.0

[コマンド]
$ sudo rm -rf ~/.local/share/Trash/files/*

[注意点・はまった箇所]
Gnomeのゴミ箱の場所が、わかってなかった。

root権限でファイルを消すので、場所の指定に注意。

2009年2月15日日曜日

Microsoft Access から MySQL5.0 に ODBC connecter で 接続したい。

[やりたいこと・しりたいこと]
Microsoft Access から MySQL5.0 に ODBC connecter で 接続したい。


[環境]
WindowsXP SP3 on VMware
mysql-essential-5.0.67-win32.msi
mysql-connector-odbc-5.1.5-win32.msi
Access 2003 SP3

MySQLとAccessは 同一仮想マシンの上にインストールされている



[やったこと・わかったこと]

1. my.iniにcharacter setを追記する

[client]
default-character-set=sjis

[mysqld]
default-character-set=sjis

[mysqldump]
default-character-set=sjis

[mysql]
default-character-set=sjis



2. mysqlで現在のcharacter setを 確認する

mysql> SHOW VARIABLES LIKE 'char%';

使用できる character setを 確認する
mysql> show character set like '%cp%';
mysql> show character set like '%jis%';
mysql> show character set like '%utf%';

3.1 acsessから接続するdatabaseを作る
mysql> create database db_acsess character set sjis

3.2 サンプルのtableを作る

create table tbl_sample (id int, name varchar(30));

3.3 サンプルの情報を登録する

insert into tbl_sample (id, name) values (1, '綾波レイ');
insert into tbl_sample values (3, '碇シンジ');



4. mysql-connector-odbc の インストール
mysql-connector-odbc-5.1.5-win32.msi


5.
コントロールパネル
データソース(ODBC)
ユーザーDSN 追加
MuSQL ODBC 5.1 Driver 完了


Data Source Name:mysql_access
Description:
Sever: localhost
Port:3306
User:root
Password:********
Database:db_access

Data Source Name: この接続の識別名
Description: この接続の説明
Server: データベースサーバー
Port:MySQLのポートナンバー
User: データベースに接続するためのアカウント
Password: 上記アカウントのパスワード
Database: 接続対象のデータベース


6. AccessからMySQLのデータベースに接続する

新規データベース作成
sample.mdb

ファイル -> 外部データの取り込み -> テーブルリンク ->

ODBCデータベース -> コンピュータデータソース -> mysql_access



[注意点・はまった箇所]

MySQLInstanceConfig.exeを使わず、手動でサービス登録などをしているので、default_character_set=latin1 になっている。
この状態で、create database db_accessだけだと database の character set が latin1 になってしまう。
その場合は明示的に create database db_acsess character set sjis とする。

my.ini に sjis の設定が済んでいるなら、明示的に create database db_acsess character set sjis とする必要はない。

utf8 に 設定した場合 英数字はOK だが かな漢字の表示が 旨くいかなかった。 sjisなら 表示できた。

mysql5 utf8 php5 utf8 access2003 sjis だと 問題になる。
mysql5 sjis php5 sjis access2003 sjis なら 問題ないはず。


[参考]

MS AccessからMySQLのデータベースに接続する
http://www.hm-lab.net/archives/305

Microsoft Access で Connector/ODBC を使用する
http://dev.mysql.com/doc/refman/5.1/ja/myodbc-examples-tools-with-access.html

文字コード確認設定
http://www.smaps.co.jp/blog/03_service/02_www/post_28.php

mySQL 操作メモ(一般)
http://www.netp.tuis.ac.jp/moodle/course/view.php?id=18&page=MySQL

KRAKENBEAL RECORD: mysqlのデータベースへaccess 2003のテーブルのリンク
http://krakenbeal.javascript:void(0)blogspot.com/2009/06/mysqlaccess-2003.html

2009年2月14日土曜日

windowsxp sp3 で mysql を 手動で設定する

[やりたいこと・しりたいこと]
windowsxp sp3 で mysql を 手動で設定する


[なぜ そうするのか?]
MySQLInstanceConfig.exeで設定するとMySQLInstanceConfig.exeが応答しなくなり、install に 失敗する


[環境]
WindowsXP SP3 on VMware
mysql-essential-5.0.67-win32.msi



[やったこと・わかったこと]

1. mysql の install

custom install する

install 先は C:\mysql とする

MySQLInstanceConfig は使用しないで終了


2. windows firewall の設定

port 3306 を open


3. 環境変数の修正
c:\mysql\bin の追加
システム再起動


4.1 mysql の 手動設定

mysqlの動作確認

コマンドプロンプトA
コマンドラインから起動
>cd c:\mysql\bin
>mysqld-nd --console

コマンドプロンプトB
クライアントを使って ログイン
>mysql

コマンドプロンプトB
ためしに コマンドを実行
show databases;

コマンドプロンプトB
ログアウト
exit

コマンドプロンプトB
コマンドラインから終了
>mysqladmin -u root shutdown

コマンドプロンプトA
mysqld-ntが終了していることを確認


4.2 my.iniの作成
コマンドプロンプトを開く


>cd c:\mysql\bin
>copy my-small.ini my.ini


my.iniの修正
セクション[mysqld]
38行目に以下2行を追加

basedir=C:\\mysql
datadir=C:\\mysql\\data


4.3 サービスとして登録
>mysqld-nt --install mysql --defaults-file=C:\mysql\my.ini

サービスの開始
>sc start mysql

サービス停止
>sc stop mysql

サービスを削除
>sc delete mysql


5. rootのパスワードをhogeにする
>mysql -u root
mysql> SET PASSWORD FOR root@localhost=PASSWORD('hoge');
mysql> exit

rootのパスワードをhogeでログインする
>mysql -u root -p


[注意点・はまった箇所]

3. の再起動を忘れると sc start mysql で 起動できない

5. のrootのパスワードをhogeにするとき mysql だけでログインしていると access denied になる


[参考]

http://webtech.akijapan.com/mysql/mysql5.0/install.phtml

http://d.hatena.ne.jp/benikujyaku/20070104

http://d.hatena.ne.jp/picas/20080130/1201702318

http://d.hatena.ne.jp/yzn/20060922/p1

http://dev.mysql.com/doc/refman/5.1/ja/windows-troubleshooting.html

http://dev.mysql.com/doc/refman/5.0/en/windows-troubleshooting.html

http://www.kkfactory.net/mt/archives/2008/02/mysqlroot.html

0バイトのファイルを作る

[やりたいこと・しりたいこと]

0バイトのファイルを作る


[わかったこと]

dos

> type nul > sample.txt
> cd . > sample2.txt
> copy nul sample3.txt

unix

$ cat /dev/null > sample.txt
$ cp /dev/null sample2.txt


[参考]
http://www.tohoho-web.com/lng/200003/00030528.htm
http://x68000.q-e-d.net/~68user/unix/pickup?%2Fdev%2Fnull