cron 2012 年 5 月 13 日 No Comments

crontab -e

34 12 * * * 12:34に実行
25 08 * * *    08:25に実行
0 17 * * * 17:00に実行
0 17 * * 1 毎週月曜の 17:00に実行
0,10 17 * * 0,2,3 毎週日,火,水曜の 17:00と 17:10に実行
0-10 17 1 * * 毎月 1日の 17:00から17:10まで 1分毎に実行
0 0 1,15 * 1 毎月 1日と 15日と 月曜日の 0:00に実行
42 4 1 * *     毎月 1日の 4:42分に実行
0 21 * * 1-6   月曜日から土曜まで 21:00に実行
0,10,20,30,40,50 * * * * 10分おきに実行
*/10 * * * *        10分おきに実行
* 1 * * *         1:00から 1:59まで 1分おきに実行
0 1 * * *         1:00に実行
0 */1 * * *        毎時 0分に 1時間おきに実行
0 * * * *         毎時 0分に 1時間おきに実行
2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02に実行
30 5 1,15 * *       1日と 15日の 5:30に実行

実行結果は
/var/log/cron
に記録される。

■アパッチが落ちているかチェックして、落ちていたら起動する
さくらのVPSに契約して、運用を開始したところ、2,3日連続稼働していると、必ずapacheが落ちてしまう現象が発生していた。
実験用サーバとして、使っているだけなので、原因特定する技術レベルがあるわけでもないのでほうっておいたが、せめてアパッチが落ちていたら起動する程度のことはやっておこうと調査開始。

httpdのプロセスがなかったら、apacheを起動するコマンドをシェルで書いておいて、cronで定期的にチェックすればいいかと思って、とりあえずroot直下にhttpd_check.shなどを書いて、cronに登録したけど、全然動かない。。

主導で以下をやっても確かに動かず。
/bash/sh /root/httpd_check.sh

source ./httpd_check.sh
とやったときだけ動いてくれる。。

よくわからないまま、ググり続けたら以下の記事をみつけ
「プロセス監視シェルスクリプト」
http://flagsystem.co.jp/news/archives/37
/etc/cron.d/以下にシェルスクリプトを置いて、crontab -eで設定しているものをそのまま試したら動いた。

※ちなみに記事中のchown 755 /etc/cron.d/process_chk.shではなく、chmodの間違いであろう。

これで、定期的にhttpdのプロセスを確認して、自動で復旧するようにできた!
ここ数カ月モヤモヤしていたことが解消されたので大変うれしい。

今後は、このへんも注意深くチェックしておきたい所
http://dqn.sakusakutto.jp/2012/06/cron_crontab9.html

WEB API 2012 年 4 月 30 日 No Comments

■Google Calendar API
https://developers.google.com/google-apps/calendar/

■amazon
Product Advertising API (Javari.jp)
クイックスタートガイド

■youtube
http://www.youtube.com/dev
http://weblabo.sakura.ne.jp/blog/2009/01/php5youtube_api.html
http://phpjavascriptroom.com/?t=strm&p=youtubeapi_player_parameters
http://googledevjp.blogspot.jp/2011/01/iframe-youtube-player-javascript-player.html

■USTREAM API
Ustream Developer Network
http://developer.ustream.tv/
http://developer.ustream.tv/data_api/docs

Ustream(ユーストリーム)APIの日本語解説。
http://tiara.dtiblog.com/blog-entry-181.html

■wikipedia

PHP で WikipediaAPI からデータを簡単に取得する方法
http://weble.org/2012/01/27/wikipediaapi

【ポケット】1.宣言、初期化、スコープ 2011 年 11 月 24 日 No Comments

1.以下のプログラムの実行結果として、正しいものを選びなさい。(1つ選択)

JAVA
public class Main {
	public static void main(String[] args) {
		Sample.num = 10;
		Sample s1 = new Sample();
		Sample s2 = new Sample();
		s2.num = 5;
		System.out.println(s1.num + s2.num);
	}
}

class Sample {
	public static int num = 2;
}

A.7が表示される
B.10が表示される
C.15が表示される
D.20が表示される

・static変数は、すべてのインスタンスで共有される
・static変数にアクセスするには、「クラス名.フィールド名」の書式で記述する
・インスタンスを生成してインスタンス変数経由でアクセスすることも可能
解答:B

2.以下のプログラムの実行結果として、正しいものを選びなさい。(1つ選択)

JAVA
public class Main {
	private static int num = 10;

	public static void main(String[] args) {
		Main main = new Main();
		main.num = 20;
		main.boo();
	}

	private static void boo() {
		System.out.println(this.num);
	}
}

A.10が表示される
B.20が表示される
C.4行目でコンパイルエラーが発生する
D.5行目でコンパイルエラーが発生する
E.9行目でコンパイルエラーが発生する
F.実行時に例外がスローされる

・staticメソッドからはstatic変数もしくはstaticメソッドにしかアクセスできない
・インスタンスがなくても動作するstaticメソッド内では、インスタンスそのものを表すthisキーワードを使えない
解答:E

3.以下のプログラムの実行結果として、正しいものを選びなさい。(1つ選択)

JAVA
public interface Sample {
	public final static int NUM = 10;
}

public class SampleImpl implements Sample {
}

import static Sample.NUM;
import static SampleImpl.NUM;

public class Main {
	private static int NUM = 20;
	public static void main(String[] args) {
		System.out.println(NUM);
	}
}

A.10が表示される
B.20が表示される
C.コンパイルエラーが発生する
D.実行時に例外がスローされる

・staticインポートでは、同名のstatic変数を同時にインポートできない
・staticインポートよりもそのクラスに定義されたstatic変数が優先される

解答:B

保護中: 【黒】7.Java言語の基礎 2011 年 10 月 30 日 コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください:


保護中: 【黒】6.コレクション/ジェネリックス コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください:


保護中: 【黒】5.オブジェクト指向コンセプト コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください:


保護中: 【黒】4.並行性 2011 年 10 月 29 日 コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください:


保護中: 【黒】3.API 2011 年 10 月 10 日 コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください:


保護中: 【黒】2.フロー制御 2011 年 10 月 9 日 コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください:


保護中: 【黒】1.宣言、初期化、スコープ 2011 年 10 月 6 日 コメントを読むにはパスワードを入力してください

この投稿はパスワードで保護されています。閲覧するにはパスワードを入力してください: