SyntaxHighlighterの動きを確認してみる [雑記]
コードの表示にはなるべくSyntaxHighlighterを使うようにしているのだが,期待通りに表示されないことがあるので,いろいろ試してみる.
たとえば,前回のjavascriptのコードで,
というのがあるのだが,これをSyntaxHighlighterで表示させると,こうなる(以下はスクリーンショットの画像).
アンカータグが追加されてしまう.
auto-linksの設定が影響しているのかと思って,falseにしてみてもアンカータグは変わらない.
原因がわからない.
So-netブログでSyntaxHighlightを使う:おぼえがき:So-net blog
を参考にしてSo-netブログの設定を変えてみたのだが,それでも変わらない.
と思ってたら,記事の編集の,詳細設定に「URL自動リンク」というのがあって,リンクするになっていたのでリンクしないにしてみた.
どうやらこれが悪さをしていたようだ.
上記のブログで,「キーワード広告の表示が悪さをしている」って書いてあったのを読んでもしかしてと思ったら正解だった.うちはもとからキーワード広告はオフだったけど,似たような設定で探したら「URL自動リンク」に気がつけた.感謝.
毎回詳細設定で変更するのは面倒だ.
管理ページの[設定]->[記事の初期設定]->[URL自動リンク]に設定があるので,ここをリンクしないにしておく.
ちなみに,管理ページの[デザイン]->[テンプレート管理]->HTML編集のテンプレートは,こんな感じ.</body>の直前に以下のように挿入してる.
実際のSyntaxHighlighterの表示はこれ.
これが(アンカータグがなくて)ちゃんと表示されていればOKのはず.
もし,困っている人がいたら参考になるかも.
たとえば,前回のjavascriptのコードで,
var url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=' + city;
というのがあるのだが,これをSyntaxHighlighterで表示させると,こうなる(以下はスクリーンショットの画像).
アンカータグが追加されてしまう.
auto-linksの設定が影響しているのかと思って,falseにしてみてもアンカータグは変わらない.
原因がわからない.
So-netブログでSyntaxHighlightを使う:おぼえがき:So-net blog
を参考にしてSo-netブログの設定を変えてみたのだが,それでも変わらない.
と思ってたら,記事の編集の,詳細設定に「URL自動リンク」というのがあって,リンクするになっていたのでリンクしないにしてみた.
どうやらこれが悪さをしていたようだ.
上記のブログで,「キーワード広告の表示が悪さをしている」って書いてあったのを読んでもしかしてと思ったら正解だった.うちはもとからキーワード広告はオフだったけど,似たような設定で探したら「URL自動リンク」に気がつけた.感謝.
毎回詳細設定で変更するのは面倒だ.
管理ページの[設定]->[記事の初期設定]->[URL自動リンク]に設定があるので,ここをリンクしないにしておく.
ちなみに,管理ページの[デザイン]->[テンプレート管理]->HTML編集のテンプレートは,こんな感じ.</body>の直前に以下のように挿入してる.
<!-- Syntax Highlighter --> <link href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css" rel="stylesheet" type="text/css"> <script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script> <script src="http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js" type="text/javascript"></script> <script type="text/javascript"> SyntaxHighlighter.autoloader( 'applescript http://alexgorbatchev.com/pub/sh/current/scripts/shBrushAppleScript.js', 'actionscript3 as3 http://alexgorbatchev.com/pub/sh/current/scripts/shBrushAS3.js', 'bash shell http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js', 'coldfusion cf http://alexgorbatchev.com/pub/sh/current/scripts/shBrushColdFusion.js', 'cpp c http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js', 'c# c-sharp csharp http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js', 'css http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js', 'delphi pascal http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDelphi.js', 'diff patch pas http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js', 'erl erlang http://alexgorbatchev.com/pub/sh/current/scripts/shBrushErlang.js', 'groovy http://alexgorbatchev.com/pub/sh/current/scripts/shBrushGroovy.js', 'java http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js', 'jfx javafx http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJavaFX.js', 'js jscript javascript http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js', 'perl pl http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js', 'php http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js', 'text plain http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js', 'py python http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js', 'ruby rails ror rb http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js', 'sass scss http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSass.js', 'scala http://alexgorbatchev.com/pub/sh/current/scripts/shBrushScala.js', 'sql http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js', 'vb vbnet http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js', 'xml xhtml xslt html http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' ); SyntaxHighlighter.all(); SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.defaults['auto-links'] = false; </script> <style type="text/css"> /*--- Syntax Highlighter Scripts Generator 縦スクロールを出さない ---*/ .syntaxhighlighter { overflow-y: hidden !important; padding: 1px !important; } </style> <!-- Syntax Highlighter --> </body>
実際のSyntaxHighlighterの表示はこれ.
var url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=' + city;
これが(アンカータグがなくて)ちゃんと表示されていればOKのはず.
もし,困っている人がいたら参考になるかも.
SyntaxHighlighterを使ってみる [雑記]
ソースコードをみやすくするために,SyntaxHighlighterを使ってみる.
こんな感じ.
参考サイト
ブログでソースコードを読みやすく表示する―シンタックスハイライターSyntaxHighlighter:ウェブノート:So-netブログ
blog でコードのシンタックスハイライトする方法:出遅れエンジニアの備忘録:So-netブログ
#include <iostream> int main() { std::cout << "Hello, world!" << std::endl; }
こんな感じ.
参考サイト
ブログでソースコードを読みやすく表示する―シンタックスハイライターSyntaxHighlighter:ウェブノート:So-netブログ
blog でコードのシンタックスハイライトする方法:出遅れエンジニアの備忘録:So-netブログ
ダイナミックDNSにieServerを使ってみる [雑記]
以前,ダイナミックDNSのサービスとして「Dynamic DO!.jp」を使った.その時は,無料でずっと使えたんだけど,7月ごろに規約が変わって,今はずっと無料ではなくなってしまった.無料で使い続ける方法もあるんだけど,その条件は,うちだと難しい...
というわけで,別のダイナミックDNSサービスを使ってみる.
いくつか比較して,今回は,ieServer.Netのサービスを使ってみる.もちろん無料だ.
使い方は,とても簡単.
新規ユーザー登録から,ユーザー名とか,希望するドメイン,あとメールアドレスとパスワードを登録する.ここで登録するユーザー名が,サブドメインとして使用されるようになる.
あとは,IPアドレスを自動更新するようにしてやれば,作業は完了.
自動更新のためのツール類は,ieServerで便利ツールとして紹介されている.うちはUbuntuなので,便利ツールのうち,「IPアドレス更新サンプルスクリプト」を利用させてもらうことにする.
では,具体的な作業だが,
まず,そのスクリプトをダウンロードする.
そしたら,/usr/local/下にddnsディレクトリを作って,そこにコピー.ファイル名はddns-update.plに変更しておく.
で,そのスクリプトに必要な情報を追記してやる.
具体的には,アカウント,ドメイン名,パスワードと,CURRENT_IP_FILE, LOG_FILEのパスを指定しておく.あと,$DDNS_UPDATEはhttpsアクセスにしておく.
念のためファイル全体を示しておこう.
そしたら,(パスワードが書かれてるので)アクセス権を変更して,
あとは,crontabで定期実行されるようにしておく.
これで完了.簡単だ.
なにより,無料で使えるieServer.Netに感謝.
というわけで,別のダイナミックDNSサービスを使ってみる.
いくつか比較して,今回は,ieServer.Netのサービスを使ってみる.もちろん無料だ.
使い方は,とても簡単.
新規ユーザー登録から,ユーザー名とか,希望するドメイン,あとメールアドレスとパスワードを登録する.ここで登録するユーザー名が,サブドメインとして使用されるようになる.
あとは,IPアドレスを自動更新するようにしてやれば,作業は完了.
自動更新のためのツール類は,ieServerで便利ツールとして紹介されている.うちはUbuntuなので,便利ツールのうち,「IPアドレス更新サンプルスクリプト」を利用させてもらうことにする.
では,具体的な作業だが,
まず,そのスクリプトをダウンロードする.
cd ~/ wget http://ieserver.net/ddns-update.txt
そしたら,/usr/local/下にddnsディレクトリを作って,そこにコピー.ファイル名はddns-update.plに変更しておく.
cd /usr/local sudo mkdir ddns sudo cp ~/ddns-update.txt /usr/local/ddns/ddns-update.pl
で,そのスクリプトに必要な情報を追記してやる.
sudo vi ddns-update.pl
具体的には,アカウント,ドメイン名,パスワードと,CURRENT_IP_FILE, LOG_FILEのパスを指定しておく.あと,$DDNS_UPDATEはhttpsアクセスにしておく.
念のためファイル全体を示しておこう.
#!/usr/bin/perl # ieServer.Net 専用 DDNS IP アドレス更新スクリプト - ddns-update.pl # 作成者:山本恭弘@Agora Inc. 作成日:2004/03/24 # # 回線割り当てグローバルIPアドレスを確認し、変化があれば新IPアドレスを # DDNSに登録。当コマンドを一定の間隔で実行し、IPアドレスの変化を監視& # 更新処理する。利用には perl wget cron が利用可能である必要あり。 # # 回線に割り当てられた IPアドレス は http://ieserver.net/ipcheck.shtml # へのアクセスによって確認。 # # cron にて当コマンドを等間隔で実行し、回線IPを確認。変化があればDDNSに # IPアドレスを登録。DDNSサーバーへの負荷軽減の点から実行間隔は10分以上と # すること。 # crontab設定例(/usr/local/ddns/ddns.plにスクリプトを置き10分間隔で実行) # 5,15,25,35,45,55 * * * * /usr/local/ddns/ddns-update.pl # 以下2ファイルの配置ディレクトリは好みに応じ設定 # 1. 設定IPアドレスワークファイル $CURRENT_IP_FILE = "/usr/local/ddns/current_ip"; # 2. 設定状況ログファイル $LOG_FILE = "/usr/local/ddns/ip_update.log"; # 回線IP確認ページURL $REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml"; # DDNS更新ページURL # wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨 $DDNS_UPDATE = "https://ieserver.net/cgi-bin/dip.cgi"; # ieServer.Netにて取得したアカウント(サブドメイン)情報を記入 $ACCOUNT = "ユーザー登録したユーザー名"; # アカウント(サブドメイン)名設定 $DOMAIN = "ユーザー登録で選択したドメイン名"; # ドメイン名設定 $PASSWORD = "ユーザー登録で設定したパスワード"; # パスワード設定 if(!open(FILE,"$CURRENT_IP_FILE")) { $CURRENT_IP = '0.0.0.0'; } else { $CURRENT_IP = <FILE>; close FILE; } $NEW_IP = '0.0.0.0'; $NEW_IP = `wget -q -O - $REMOTE_ADDR_CHK`; if ($NEW_IP ne "0.0.0.0" and $CURRENT_IP ne $NEW_IP) { $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`; if ($STATUS =~ m/$NEW_IP/) { open (FILE ,">$CURRENT_IP_FILE"); print FILE $NEW_IP; close FILE; $TIME = localtime; open (FILE ,">>$LOG_FILE"); print FILE "$TIME $ACCOUNT.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n"; close FILE; } else { $TIME = localtime; open (FILE ,">>$LOG_FILE"); print FILE "$TIME $ACCOUNT.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n"; close FILE; } } exit;
そしたら,(パスワードが書かれてるので)アクセス権を変更して,
sudo chmod 700 ddns-update.pl
あとは,crontabで定期実行されるようにしておく.
sudo crontab -e 3-58/5 * * * * /usr/local/ddns/ddns-update.pl
これで完了.簡単だ.
なにより,無料で使えるieServer.Netに感謝.
bashの編集モードをviモードにしてみる [雑記]
普段Ubuntuで使ってるシェルはbashだ.
bashには編集モードというのがあって,デフォルトはemacsモードになっているらしいが,これをviモードに変更できる.普段使ってるエディタはVimなので,bashの編集モードもviモードにしたほうが便利だ.
というわけで変更してみる.
これでOK.実際は,.bashrcにでも書いておくといい.
ちなみにemacsモードにするにはviのところをemacsにすればいい.
これで,コマンドライン編集のときにviのキーバインドが(だいたい)使えるようだ.ま,Vimに慣れてる人なら違和感無く使えるというか,使いやすいと思う.
ところで,いろいろキーバインドを試していてビジュアルモードに入ろうとしたら,nanoが立ち上がってきた.どうやらnanoがデフォルト設定されているようだ.というわけでこれもVimに変更しておく.
この設定変更には,update-alternativesコマンドを使用するようだ.
まず,いまの設定を確認してみる.
すると,以下のような表示が出力されるはずだ.
これを見ると,確かにデフォルトはnanoになっているようだ.
で,Vimに変更するために,「3」を入力する.
変更されたかどうかは,再度同じコマンドを入力して,「3」のvim.basicが選択されていればOKだ.
これで完了.
bashには編集モードというのがあって,デフォルトはemacsモードになっているらしいが,これをviモードに変更できる.普段使ってるエディタはVimなので,bashの編集モードもviモードにしたほうが便利だ.
というわけで変更してみる.
set -o vi
これでOK.実際は,.bashrcにでも書いておくといい.
ちなみにemacsモードにするにはviのところをemacsにすればいい.
これで,コマンドライン編集のときにviのキーバインドが(だいたい)使えるようだ.ま,Vimに慣れてる人なら違和感無く使えるというか,使いやすいと思う.
ところで,いろいろキーバインドを試していてビジュアルモードに入ろうとしたら,nanoが立ち上がってきた.どうやらnanoがデフォルト設定されているようだ.というわけでこれもVimに変更しておく.
この設定変更には,update-alternativesコマンドを使用するようだ.
まず,いまの設定を確認してみる.
sudo update-alternatives --config editor
すると,以下のような表示が出力されるはずだ.
alternative editor (/usr/bin/editor を提供) には 4 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /bin/nano 40 自動モード 1 /bin/ed -100 手動モード 2 /bin/nano 40 手動モード 3 /usr/bin/vim.basic 30 手動モード 4 /usr/bin/vim.tiny 10 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:
これを見ると,確かにデフォルトはnanoになっているようだ.
で,Vimに変更するために,「3」を入力する.
変更されたかどうかは,再度同じコマンドを入力して,「3」のvim.basicが選択されていればOKだ.
これで完了.
NTPで時刻合わせをしてみる [雑記]
前回,ダイナミックDNSのIPアドレス更新を自動化したときに,ログを出力するようにした.で,このログには時刻も記録されるようにした訳だが,動作確認したときの時刻をよく見ると,ちょっと時刻がズレてることに気づいた.
そういえば,時刻合わせって,気にしてなかった...
というわけで,NTPで時刻合わせするようにしてみる.
NTPの詳細はリンク先を見てもらうとして,要は時刻合わせをするためのプロトコルだ.
で,その時刻合わせをするためにNTPクライアントをインストールしてやる.
そしたら,設定.
変更内容は,まず,既存のserverから始まる行をコメントアウトしてやる.うちの環境では16行目から始まる以下をコメントアウトした.
で,serverとして以下を追加した.
3つとも同じサーバ名にしているが,これでよい.実際には複数台のサーバがあって,別々のサーバにアクセスするようになっている.
これらのサーバは,日本標準時を供給している独立行政法人情報通信研究機構(NICT)によるサービスで提供されてるものだ.個人利用も許可されてるのでありがたく利用させてもらう.
で,設定が完了したら,NTPを再起動して設定を有効にしてやる.
そしたら動作チェック.
最初は以下のようにサーバ名の前は空白のはず.
で,しばらくするとNTPサーバ名の前に*か+がつくはずだ.ちなみに意味合いは,以下のようになっている.
これでOK.
あとは,dateコマンドで現在日時を表示できるのでちゃんと設定されてるかこれで確認できる.
これで時刻は正確に保たれるようになる.
そういえば,時刻合わせって,気にしてなかった...
というわけで,NTPで時刻合わせするようにしてみる.
NTPの詳細はリンク先を見てもらうとして,要は時刻合わせをするためのプロトコルだ.
で,その時刻合わせをするためにNTPクライアントをインストールしてやる.
sudo apt-get install ntp
そしたら,設定.
sudo vi /etc/ntp.conf
変更内容は,まず,既存のserverから始まる行をコメントアウトしてやる.うちの環境では16行目から始まる以下をコメントアウトした.
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board # on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for # more information. # server 0.ubuntu.pool.ntp.org # server 1.ubuntu.pool.ntp.org # server 2.ubuntu.pool.ntp.org # server 3.ubuntu.pool.ntp.org # Use Ubuntu's ntp server as a fallback. # server ntp.ubuntu.com
で,serverとして以下を追加した.
server ntp.nict.jp server ntp.nict.jp server ntp.nict.jp
3つとも同じサーバ名にしているが,これでよい.実際には複数台のサーバがあって,別々のサーバにアクセスするようになっている.
これらのサーバは,日本標準時を供給している独立行政法人情報通信研究機構(NICT)によるサービスで提供されてるものだ.個人利用も許可されてるのでありがたく利用させてもらう.
で,設定が完了したら,NTPを再起動して設定を有効にしてやる.
sudo /etc/init.d/ntp restart
そしたら動作チェック.
sudo ntpq -p
最初は以下のようにサーバ名の前は空白のはず.
remote refid st t when poll reach delay offset jitter ============================================================================== ntp-a3.nict.go. .NICT. 1 u 7 64 1 15.500 -2.257 0.000 ntp-b2.nict.go. .NICT. 1 u 6 64 1 17.769 -0.673 0.000 ntp-b3.nict.go. .NICT. 1 u 5 64 1 15.264 -0.223 0.000
で,しばらくするとNTPサーバ名の前に*か+がつくはずだ.ちなみに意味合いは,以下のようになっている.
"*" :現在,参照同期中のサーバー
"+" :現在,クロック誤り検査に合格したサーバー
"#" :現在,参照同期中ですが,距離が遠いサーバー
" " :現在,参照していないサーバー
"x" :現在,クロック誤り検査で不合格になったサーバー
"." :現在,参照リストからはずされたサーバー
remote refid st t when poll reach delay offset jitter ============================================================================== +ntp-a3.nict.go. .NICT. 1 u 19 64 177 5.291 2.974 4.926 +ntp-b2.nict.go. .NICT. 1 u 21 64 177 8.528 2.911 3.492 *ntp-b3.nict.go. .NICT. 1 u 23 64 177 9.097 2.497 2.848
これでOK.
あとは,dateコマンドで現在日時を表示できるのでちゃんと設定されてるかこれで確認できる.
これで時刻は正確に保たれるようになる.
ダイナミックDNSのIPアドレス更新を自動化してみる [雑記]
前回,ダイナミックDNSの登録をやって,ひとまず使えるようになったのだが,必須作業であるIPアドレスの更新が手動になっていた.今回はこれを自動化してみる.
で,ちょっと調べてみると,この自動更新をやってくれるクライアントソフトがある.
Windowsでは,DiCEが定番のようだ.
だけどうちのサーバはUbuntuだ.DiCE for Linux Beta Versionというのもあるようだが,もうちょっと調べてみると,「Dynamic DO!.jp」ならスクリプトとcronで簡単にできるようだ.
参考にしたサイトは以下の3つ.
「240ねっと! - Linuxサーバの構築」
「DDNS/ddo.jp - PukiWiki」
「U1F BLOG: ddo.jp 自動更新スクリプト」
では,具体的な作業に入ろう.
まずは,perlスクリプトの作成.IPアドレスの変更があったときだけ更新(登録)作業をするようなスクリプトとしておく.
ipchk.plは以下のとおり.
ちなみに,ホスト名とパスワードは「Dynamic DO!.jp」に登録したホスト名とパスワードだ.
このスクリプトにはパスワードが平文で書かれてるので,アクセス権をrootだけにしてやる.
動作テストしてエラーが無ければcronに登録してやる.
「Dynamic DO!.jp」には以下のような記載がある.
あと,まるっきりIPアドレスが変わらないと更新(登録)作業がされないことになるが,最低1ヶ月に1回はIPアドレスの更新をしないといけない.なので,スクリプトが生成する「現在のIPアドレスを保持するファイル」を週に2回削除するようにして,必ず更新(登録)作業がされるようにしてやる.
crontabの編集
記載内容
これでIPアドレス更新が自動的に行われるようになるはずだ.
試しにサーバのIPアドレスを変更したり,CRT_IP.datファイルを削除して動作を確認してみたが正常に動作しているようだ.
ちなみにLogは/var/log/ddns.logに出力される.更新(登録)作業がされたときに出力されるようになっていて動作が確認できる.
以上で作業は完了.これでIPアドレスが変わってもちゃんとDNSでアクセスできるようになる.
で,ちょっと調べてみると,この自動更新をやってくれるクライアントソフトがある.
Windowsでは,DiCEが定番のようだ.
だけどうちのサーバはUbuntuだ.DiCE for Linux Beta Versionというのもあるようだが,もうちょっと調べてみると,「Dynamic DO!.jp」ならスクリプトとcronで簡単にできるようだ.
参考にしたサイトは以下の3つ.
「240ねっと! - Linuxサーバの構築」
「DDNS/ddo.jp - PukiWiki」
「U1F BLOG: ddo.jp 自動更新スクリプト」
では,具体的な作業に入ろう.
まずは,perlスクリプトの作成.IPアドレスの変更があったときだけ更新(登録)作業をするようなスクリプトとしておく.
cd /usr sudo mkdir ddns cd ddns sudo vi ipchk.pl
ipchk.plは以下のとおり.
ちなみに,ホスト名とパスワードは「Dynamic DO!.jp」に登録したホスト名とパスワードだ.
#!/usr/bin/perl # $CRT_IPF = '/usr/ddns/CRT_IP.dat'; $NEW_IPF = '/usr/ddns/NEW_IP.dat'; $LOG = '/var/log/ddns.log'; open (INPUT,$CRT_IPF); $CRT_IP=<INPUT>; close (INPUT); system("/usr/bin/wget -q -O $NEW_IPF http://info.ddo.jp/remote_addr.php"); open(INPUT,$NEW_IPF); @xx = <INPUT>; $c = $xx[1]; $stp = index($c,"REMOTE_ADDR:")+12; $edp = length($c); $NEW_IP = substr($c,$stp,($edp-$stp)); close(INPUT); if ($NEW_IP ne "" and $CRT_IP ne $NEW_IP) { open (OUTPUT ,">$CRT_IPF"); print OUTPUT $NEW_IP; close OUTPUT; print "IP Address update: $CRT_IP to $NEW_IP\n"; system("wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=ホスト名.ddo.jp&pw=パスワード'"); $now_string = localtime; open (OUTPUT ,">>$LOG"); print OUTPUT "$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP\n"; close OUTPUT; }
このスクリプトにはパスワードが平文で書かれてるので,アクセス権をrootだけにしてやる.
sudo chmod 700 ipchk.pl
動作テストしてエラーが無ければcronに登録してやる.
「Dynamic DO!.jp」には以下のような記載がある.
「IPアドレス更新リクエストが毎時00分前後の数秒に集中しております。 サーバ負荷の増大に伴い、その間の更新リクエストが失敗する場合もございます。 自動更新処理は毎時00分を避けるよう設定ください。」なので5分ごとの更新タイミングを3分ずらすようにする(3分,8分,13分・・・とする).
あと,まるっきりIPアドレスが変わらないと更新(登録)作業がされないことになるが,最低1ヶ月に1回はIPアドレスの更新をしないといけない.なので,スクリプトが生成する「現在のIPアドレスを保持するファイル」を週に2回削除するようにして,必ず更新(登録)作業がされるようにしてやる.
crontabの編集
sudo crontab -e
記載内容
3-58/5 * * * * /usr/ddns/ipchk.pl 0 5 * * 0 rm -f /usr/ddns/CRT_IP.dat 0 5 * * 3 rm -f /usr/ddns/CRT_IP.dat
これでIPアドレス更新が自動的に行われるようになるはずだ.
試しにサーバのIPアドレスを変更したり,CRT_IP.datファイルを削除して動作を確認してみたが正常に動作しているようだ.
ちなみにLogは/var/log/ddns.logに出力される.更新(登録)作業がされたときに出力されるようになっていて動作が確認できる.
以上で作業は完了.これでIPアドレスが変わってもちゃんとDNSでアクセスできるようになる.
ダイナミックDNSを使ってみる [雑記]
外出してるときとかでも,いま使ってる格安サーバ(PRIMERGY MX130 S2)にアクセスできるようにしてみる.
幸い,うちはグローバルIPが割り振られてるので,IPアドレスさえ分かれば外からでもsshで接続できる.でも,IPアドレスなんて覚えられないし,残念ながら固定IPでもない.
で,こんなときはダイナミックDNSだ.
詳細はリンク先を見てもらうとして,ま,ざっくり言えば固定IPじゃなくてもDNSが使えるようになるってことだ.IPアドレスが変わったときにダイナミックDNSのサービスに通知するようにしておけばIPとDNSの対応付けをやってくれる.
ダイナミックDNSのサービスは検索すると.無料で使えるサービスがいろいろある.
で,いろいろ比較した結果,「Dynamic DO!.jp」を利用することにした.
Dynamic DO!.jpでは有料版もあるけど,いま考えてる用途なら無料版で全く問題ない.ありがたく無料版を利用させてもらう.
使い方(登録方法)はとっても簡単.特に悩むところはないと思う.検索すれば登録方法を詳しく説明してるサイトもあるようだ.
で,登録が完了すれば,ホスト名.ddo.jpが使えるようになるわけだが,サーバのIPアドレスを登録しないといけない.
とりあえず手動で設定するにはDynamic DO!.jpのサイトから「IPアドレスの更新」をすればよい.
これでDNSとIPアドレスの関係が正しく設定されることになる.
ところで,Dynamic DO!.jpの無料版だと最低1ヶ月に1回はIPアドレスの更新をしないといけない(更新がないと登録削除される).それに,そもそもサーバのIPアドレスが変わったら更新をしないといけない.
これを手動でやるのはとっても面倒だ.
で,自動化するわけだが,とりあえず今回はここまで.
自動化の作業はまた次回...
幸い,うちはグローバルIPが割り振られてるので,IPアドレスさえ分かれば外からでもsshで接続できる.でも,IPアドレスなんて覚えられないし,残念ながら固定IPでもない.
で,こんなときはダイナミックDNSだ.
詳細はリンク先を見てもらうとして,ま,ざっくり言えば固定IPじゃなくてもDNSが使えるようになるってことだ.IPアドレスが変わったときにダイナミックDNSのサービスに通知するようにしておけばIPとDNSの対応付けをやってくれる.
ダイナミックDNSのサービスは検索すると.無料で使えるサービスがいろいろある.
で,いろいろ比較した結果,「Dynamic DO!.jp」を利用することにした.
Dynamic DO!.jpでは有料版もあるけど,いま考えてる用途なら無料版で全く問題ない.ありがたく無料版を利用させてもらう.
使い方(登録方法)はとっても簡単.特に悩むところはないと思う.検索すれば登録方法を詳しく説明してるサイトもあるようだ.
で,登録が完了すれば,ホスト名.ddo.jpが使えるようになるわけだが,サーバのIPアドレスを登録しないといけない.
とりあえず手動で設定するにはDynamic DO!.jpのサイトから「IPアドレスの更新」をすればよい.
これでDNSとIPアドレスの関係が正しく設定されることになる.
ところで,Dynamic DO!.jpの無料版だと最低1ヶ月に1回はIPアドレスの更新をしないといけない(更新がないと登録削除される).それに,そもそもサーバのIPアドレスが変わったら更新をしないといけない.
これを手動でやるのはとっても面倒だ.
で,自動化するわけだが,とりあえず今回はここまで.
自動化の作業はまた次回...
PRIMERGY MX130 S2のHDMIから音を出してみる [雑記]
PRIMERGY MX130 S2には,サウンド機能がない.
だけど,DVI-HDMI変換コネクタなるものを使うと,HDMI接続したモニターとかテレビから音が出せるらしい.
DVI-HDMI変換コネクタは,玄人志向のDVI-HDMI4が定番のようだ.
ところが,PRIMERGY MX130 S2のwikiにFAQがあって,それを見るとDVI-HDMI4を使っても音が出るものと出ないものがあるようだ.
で,とりあえず,手元にPLANEX HDMI-DVI変換ケーブルのPL-HDDV02ってのがあったので,こいつでつないでみたのだが,これでは音は出なかった.単なる変換ケーブルじゃダメらしい...
というわけで,どうしようか迷ったけど,ま,DVI-HDMI4は900円ぐらいなので,ダメならダメでいいやーと思って買ってみた.あと,HDMIケーブルも必要なので,これも買ってみた.
で,TVにつないでみたら...
音が出ました.
うちのは音の出る子だったようです.
ちなみに,うちの子のSerial No.は,MAGA0035xxでした.
wikiによると,MAGA0039xxは音が出ないようなので,35xxから39xxの間に仕様が変わったのでしょうかね.
ま,なんにせよ,音が出てよかった.
だけど,DVI-HDMI変換コネクタなるものを使うと,HDMI接続したモニターとかテレビから音が出せるらしい.
DVI-HDMI変換コネクタは,玄人志向のDVI-HDMI4が定番のようだ.
玄人志向 グラフィックボード アクセサリ DVI → HDMI 変換コネクタ ATI Radeon HD3000シリーズ以降グラフィックボード向け DVI-HDMI4
- 出版社/メーカー: 玄人志向
- メディア: Personal Computers
ところが,PRIMERGY MX130 S2のwikiにFAQがあって,それを見るとDVI-HDMI4を使っても音が出るものと出ないものがあるようだ.
で,とりあえず,手元にPLANEX HDMI-DVI変換ケーブルのPL-HDDV02ってのがあったので,こいつでつないでみたのだが,これでは音は出なかった.単なる変換ケーブルじゃダメらしい...
PLANEX HDMI-DVI変換ケーブル 2.0m PL-HDDV02
- 出版社/メーカー: プラネックス
- メディア: エレクトロニクス
というわけで,どうしようか迷ったけど,ま,DVI-HDMI4は900円ぐらいなので,ダメならダメでいいやーと思って買ってみた.あと,HDMIケーブルも必要なので,これも買ってみた.
PLANEX ハイスピードHDMI Ver1.4ケーブル 1m (PS3/Xbox360) PL-HDMI01-EZ [フラストレーションフリーパッケージ(FFP)]
- 出版社/メーカー: プラネックス
- メディア: エレクトロニクス
で,TVにつないでみたら...
音が出ました.
うちのは音の出る子だったようです.
ちなみに,うちの子のSerial No.は,MAGA0035xxでした.
wikiによると,MAGA0039xxは音が出ないようなので,35xxから39xxの間に仕様が変わったのでしょうかね.
ま,なんにせよ,音が出てよかった.
Ubuntu 12.04の64bit版をインストールしてみる [雑記]
PRIMERGY MX130 S2のパワーアップもしたことだし,また,Open webOSのビルド環境としてUbuntu 12.04の64bit版もサポートされたので,Ubuntu 12.04の64bit版をインストールしてみる.
32bit版はUbuntu Japanese Team提供のUbuntu Desktop 日本語 Remix CDがあって,以前はこれをインストールしたのだが,残念ながら64bit版は存在しない.
というわけで,まずはUbuntu本家から,64bit版のisoイメージをダウンロードする.ダウンロードはここから.
ダウンロードしたら,isoイメージをCD-Rに焼いて,あとはCD-Rから起動してやればよい.
インストールは手順に従って進めればOK.
そのあと,日本語 Remixにするには,ここにある通りに作業を進めればOK.
まず,Japanese Teamのパッケージレポジトリを追加して,パッケージをアップグレードしてやる.
そしたら,[システムの設定]を開いて,[言語サポート]の「メニューとウインドウの言語」として日本語が含まれていることを確認する.含まれてなかったら追加してやる.
で,
でOK.
ひとまずこれで64bitの環境が整った.
32bit版はUbuntu Japanese Team提供のUbuntu Desktop 日本語 Remix CDがあって,以前はこれをインストールしたのだが,残念ながら64bit版は存在しない.
というわけで,まずはUbuntu本家から,64bit版のisoイメージをダウンロードする.ダウンロードはここから.
ダウンロードしたら,isoイメージをCD-Rに焼いて,あとはCD-Rから起動してやればよい.
インストールは手順に従って進めればOK.
そのあと,日本語 Remixにするには,ここにある通りに作業を進めればOK.
まず,Japanese Teamのパッケージレポジトリを追加して,パッケージをアップグレードしてやる.
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add - wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add - sudo wget https://www.ubuntulinux.jp/sources.list.d/precise.list -O /etc/apt/sources.list.d/ubuntu-ja.list sudo apt-get update sudo apt-get upgrade
そしたら,[システムの設定]を開いて,[言語サポート]の「メニューとウインドウの言語」として日本語が含まれていることを確認する.含まれてなかったら追加してやる.
で,
sudo apt-get install ubuntu-defaults-ja
でOK.
ひとまずこれで64bitの環境が整った.
タグ:日本語 Remix
PRIMERGY MX130 S2をアップグレードしてみる [雑記]
しばらく買ったままの状態で使っていたPRIMERGY MX130 S2だが,コンパイルしたりするとその遅さが気になってきた.Sempron 145って遅い...
というわけで,アップグレードしてみる.今回はCPU交換とメモリ追加をしてやることにした.
まずCPU.どれにするかは,かなり迷った.
候補は,
・PhenomII X6 1065T
・FX-4100
・FX-6100
・Opteron 3250
・Opteron 3280
といったところ.省電力とか,Bulldozerはパワーがいまいちとか,お値段とか,まぁいろいろ検討項目があって,そりゃ迷った.
で,結局,省電力よりパワーだ!ってのと,1パーツとしてマシン本体価格を超えてはならないとの制限を加えて,FX-6100にした.
Sofmapでお値段¥8,980円也.
メモリはまぁあんまり悩まなかった.
8Gぐらいあればいいかなぁと何となく思って,
UMAXのCetus DCDDR3-8GB-1333 (PC3-10600-4GBx2) にした.
これもSofmapでお値段¥2,880円也.
あと,CPUグリスも買った.
こっちはAmazonで,SANWA SUPPLY シリコングリス TK-P3Sにした.¥564円也.
もっと高いのもあって,ちょっと迷ったけど,グリスに千円越えは出せんなと思ってこれにした.
メモリはメモリスロットへの取り付け順序があるので注意.詳しくは,「PRIMERGY MX130 S2 サーバアップグレード&メンテナンスマニュアル」に書かれてる.
で,とりあえずmemtest86+を一晩回したけど,問題なし.もともと付いてた2Gと今回の8Gで,計10Gになった.
CPU交換も特に難しいことはなくあっさり終了.
これで快適になるはずだ.
というわけで,アップグレードしてみる.今回はCPU交換とメモリ追加をしてやることにした.
まずCPU.どれにするかは,かなり迷った.
候補は,
・PhenomII X6 1065T
・FX-4100
・FX-6100
・Opteron 3250
・Opteron 3280
といったところ.省電力とか,Bulldozerはパワーがいまいちとか,お値段とか,まぁいろいろ検討項目があって,そりゃ迷った.
で,結局,省電力よりパワーだ!ってのと,1パーツとしてマシン本体価格を超えてはならないとの制限を加えて,FX-6100にした.
Sofmapでお値段¥8,980円也.
メモリはまぁあんまり悩まなかった.
8Gぐらいあればいいかなぁと何となく思って,
UMAXのCetus DCDDR3-8GB-1333 (PC3-10600-4GBx2) にした.
これもSofmapでお値段¥2,880円也.
あと,CPUグリスも買った.
こっちはAmazonで,SANWA SUPPLY シリコングリス TK-P3Sにした.¥564円也.
もっと高いのもあって,ちょっと迷ったけど,グリスに千円越えは出せんなと思ってこれにした.
メモリはメモリスロットへの取り付け順序があるので注意.詳しくは,「PRIMERGY MX130 S2 サーバアップグレード&メンテナンスマニュアル」に書かれてる.
で,とりあえずmemtest86+を一晩回したけど,問題なし.もともと付いてた2Gと今回の8Gで,計10Gになった.
CPU交換も特に難しいことはなくあっさり終了.
これで快適になるはずだ.