CANPAN ブログ検索
Loading
  • もっと見る
<< 2019年08月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
カテゴリアーカイブ
最新記事
最新コメント
HTML文書で今日の日付を表示させてみました(続き) [2016年10月17日(Mon)]
HTML文書で今日の日付を表示させてみました(続き)


 安倍晋三氏の第2次安倍内閣は、2012年12月26日から始まっていますの、総理名に組閣からの年数を添えるもの (在位紀年) で表してみました。

 2012年を「安倍晋三 元年」とすると、2016年の今年は、「安倍晋三 5年」となります。


 下のように、「HTML文書」で表示するためのプログラムを、次に書きます。

本日は 平成28年(2016年、安倍晋三 5年)10月17日(月) です

 「元年」表示にも対応しています。

<SCRIPT LANGUAGE="JavaScript">
<!--
mydate=new Date();
Ye=mydate.getFullYear()+"年";
Wa=mydate.getFullYear()-1988;
if (Wa > 1) {
Wa=mydate.getFullYear()-1988+"年(";
} else {
Wa="元年(";
}
So=mydate.getFullYear()-2011;
if (So > 1) {
So=mydate.getFullYear()-2011+"年";
} else {
So="元年";
}
Mo=mydate.getMonth()+1+"月";
Da=mydate.getDate()+"日";
Day=mydate.getDay();
Day2=new Array(7);
Day2[0]="日";Day2[1]="月";Day2[2]="火";
Day2[3]="水";Day2[4]="木";Day2[5]="金";
Day2[6]="土";
document.write("<FONT style='font-size : 24px; color : red'>");
document.write("本日は 平成"+Wa+Ye+"、安倍晋三 "+So+")"+Mo+Da+"("+Day2[Day]+")");
document.write(" です</FONT>");
//-->
</SCRIPT>

Posted by 山田 雄一郎 at 21:12
HTML文書で今日の日付を表示させてみました [2016年10月16日(Sun)]
HTML文書で今日の日付を表示させてみました


 PHP文書で今日の日付を表示していましたが、HTML文書でも今日の日付を表示してみたくなりました。

 ネットで探すと、次のブログが見つかりました。

今日の日付を表示させよう
 プログラムAのソースをコピーして、今日の日付を表示させたい場所のHTMLソースのBODY区間に貼り付けしましょう。
 文字の大きさや色をかえる場合は、style='font-size : 16px; color : #666666' のところで指定をします。大きさは font-size : 16px の 16 を、色は color : #666666 の #666666 をあなたの好きな色にかえてください。
 ソースの文字をかえる時に、" や ; を消してしまわないようにしてください。


 そこで、「font-size」を「16px」→「24px」に、「color」を「#666666」→「red」に変えて、「平成」も表示するようにしました。

 私が昔から使っているローカルの「index.html」の内容は次のようになっています。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
(略)
<title>
(略)
</title>
</head>
<body bgcolor="#E0E0E0">
(略)
</body>
</html>

 見つけたブログに書いてあるように、「<body bgcolor="#E0E0E0">」の次の「(略)」に下の内容を追加して書き込みます。

<SCRIPT LANGUAGE="JavaScript">
<!--
mydate=new Date();
Ye=mydate.getFullYear()+"年";
Wa=mydate.getFullYear()-1988+"年(";
Mo=mydate.getMonth()+1+"月";
Da=mydate.getDate()+"日";
Day=mydate.getDay();
Day2=new Array(7);
Day2[0]="日";Day2[1]="月";Day2[2]="火";
Day2[3]="水";Day2[4]="木";Day2[5]="金";
Day2[6]="土";
document.write("<FONT style='font-size : 24px; color : red'>");
document.write("本日は 平成"+Wa+Ye+")"+Mo+Da+"("+Day2[Day]+")");
document.write(" です</FONT>");
//-->
</SCRIPT>

 このローカルの「index.html」を実行すると、赤い字で下のように表示します。

本日は 平成28年(2016年)10月16日(日) です


 ところで、私は、産經NetViewで産經新聞をみています。

 本日(平成28年10月16日)の新聞第一面に、政府は、天皇陛下から皇太子さまへの皇位継承に伴う重要な儀礼である「大嘗祭(だいじょうさい)」を平成30年11月に執り行う方向で検討に入った、と書いてありました。

 「元号」が、「平成」から新しい「元号」に変わったとしても、上のプログラムの「平成」と「1988」の部分を変えるだけで、新しい「元号」に対応できます。

Posted by 山田 雄一郎 at 17:31
死亡日を「和暦」と「西暦」で表示する [2016年10月15日(Sat)]
死亡日を「和暦」と「西暦」で表示する



 故人の死亡日から、法事の予定(1周忌、3回忌、7回忌、13回忌など)を管理することにしました。


 そこで問題になったのは、「西暦」から「和暦」に変換することでした。


 「1989年は全て平成元年とする」というような年単位の和暦変換は簡単にできますが、日付単位での和暦変換を目指すことにしました。


 ちなみに、日本語Linuxの「Fedora24」上で「Apache/2.4.23 (Fedora) OpenSSL/1.0.2j-fips PHP/5.6.26 mod_perl/2.0.9 Perl/v5.22.2」を使用しています。



データベースの日付

Aさんの死亡日(1989-01-07)

Bさんの死亡日(1989-01-08)


処理後

Aさん 昭和 64 年 01 月 07 日 1989-01-07

Bさん 平成 元 年 01 月 08 日 1989-01-08


 ネットを検索していて、偶然、「負のタイムスタンプをサポート」できることを知りました。


*****引用開始*****

strtotime


注意:

 年を 2 桁の数値で指定した場合、その値が 00-69 なら 2000-2069 に、 70-99 なら 1970-1999 にそれぞれ変換されます。 32 ビットシステム上での相違点 (2038-01-19 03:14:07 までの日付しか表せない) については以下の注意を参照ください。


注意:

 タイムスタンプの有効な範囲は、通常、Fri, 13 Dec 1901 20:45:54 UTC から Tue, 19 Jan 2038 03:14:07 UTC までです (これらは、32 ビット符号付整数の最大及び最小に一致します)。


 全てのプラットフォームが負のタイムスタンプをサポートしている わけではありませんので、PHP 5.1.0 より前のバージョンでは、日付の範囲が Unix エポック以前にはならないかも知れません。 これは、例えば Windows やいくつかの Linux ディストリビューション、 いくつかの他のオペレーティングシステムでは 1970 年 1 月 1 日以前の日付では動作しない事を意味しています。


 64 ビット版の PHP では、タイムスタンプの有効範囲は事実上無制限です。というのも、64 ビットでは過去側も未来側も約 2930 億年を表せるからです。

*****引用終わり*****


*****引用開始*****

PHPで和暦・日本語曜日を使う


['name' => '平成', 'name_short' => 'H', 'timestamp' => 600188400], // 1989-01-08,

['name' => '昭和', 'name_short' => 'S', 'timestamp' => -1357635600], // 1926-12-25'

['name' => '大正', 'name_short' => 'T', 'timestamp' => -1812186000], // 1912-07-30

['name' => '明治', 'name_short' => 'M', 'timestamp' => -3216790800], // 1868-01-25

注意

 明治5年以前は天保暦・寛政暦などが利用されており、現在のグレゴリオ暦と日付が一致していません。

*****引用終わり*****



 次のようにすることにしました。


 wikiによると、日本でのグレゴリオ暦導入年月日は、「1873年(明治6年)1月1日」となっていますので、1873年1月1日以降に限り、日付単位での和暦変換をすることにしました。


 「1873-01-01」の「timestamp」は、「-3061011600」です。



データベースの日付

Cさんの死亡日(1872-12-31)

Dさんの死亡日(1873-01-01)


処理後

Cさん グレゴリオ暦導入より前 1872-12-31

Dさん 明治 6 年 01 月 01 日 1873-01-01



 参考として、このプログラムの応用として、会社の歴代社長の在任期間(治世?)を表示することにより、ある案件を何代目の社長が決済したかわかるようになります。


 韓国の歴史ドラマを見て思いついたのですが、君主名に即位からの年数を添えるもの (在位紀年) で表しています。


*****引用開始*****

朝鮮王朝実録


1413年(太宗13年)に太祖実録15巻を編纂したのを始め、歴代国王の実録を編修し、

*****引用終わり*****


 トヨタ自動車の歴代社長を例にすると、社長に就任した日付を Unix タイムスタンプに変換して、プログラムを少し修正すれば下のように年月日を表示することができます。

Eの決済年月日 第10代渡辺捷昭 5 年 06 月 22 日 2009-06-22

Fの決済年月日 第11代豊田章男 元 年 06 月 23 日 2009-06-23


※当然、「部長」や「課長」などの在任期間でも表示できます。




 それでは、プログラムを紹介します。


1 「houji」というデータベースを作成します。


CREATE TABLE houji (

id_no SERIAL PRIMARY KEY,

namae text,

tudukigara text,

nenngappi date,

nennrei int4

);



namae text, 故人 例「安倍晋太郎」

tudukigara text, 続柄 例「寛信 父」

nenngappi date, 没年月日 例「1991-05-15」

nennrei int4 没満年齢 例「67」


2 「index.php」というプログラムを作成します。


 プログラムの一部のみを載せます。


 事前に、データベースの総件数を取得し、「$zenbu」に入力します。


 「for ループ」を使用し、「$i」の数値を一つづつ増加することで、処理したデータを表示します。


<?php
// エラー出力する場合

ini_set( 'display_errors', 1 );


// データの取り出し

$sql = "select *

from houji

order by nenngappi

";

$result = pg_query($sql);


// 繰り返し開始

for ($i = 0;$i < $zenbu;$i++) {

// 死亡日(和暦)

// データベースから死亡日付を取り出す

$str = pg_fetch_result($result,$i,3);

// 同じ死亡日付を、西暦でも使用する

$seireki = $str;


// 死亡日付を「年」(4桁の数字)、「月」(2桁の数字)、「日」(2桁の数字)に分ける

$str_y = substr( $str, 0, 4 );

$str_m = substr( $str, 5, 2 );

$str_d = substr( $str, 8, 2 );


// 英文形式の死亡日付を Unix タイムスタンプに変換する

$wareki = strtotime($str);


// タイムスタンプを使って、死亡日付を時代で分ける

if ($wareki < -3061011600) {

// 日本でのグレゴリオ暦導入年月日「1873年(明治6年)1月1日」の前なので、採用しない

$gengo = "江戸時代(グレゴリオ暦導入より前)";


} elseif ($wareki < -1812186000) {

// 明治時代(明治6年1月1日以降)

$str_y = $str_y - 1868 + 1;

$gengo = "明治 $str_y 年 $str_m 月 $str_d 日 ";


} elseif ($wareki < -1357635600) {

// 大正時代

$str_y = $str_y - 1912 + 1;

if ($str_y == 1) {

$str_y = "元";

}

$gengo = "大正 $str_y 年 $str_m 月 $str_d 日 ";


} elseif ($wareki < 600188400) {

// 昭和時代

$str_y = $str_y - 1926 + 1;

if ($str_y == 1) {

$str_y = "元";

}

$gengo = "昭和 $str_y 年 $str_m 月 $str_d 日 ";


} else {

// 平成時代

$str_y = $str_y - 1989 + 1;

if ($str_y == 1) {

$str_y = "元";

}

$gengo = "平成 $str_y 年 $str_m 月 $str_d 日 ";

}

print("$gengo");


// 死亡日(西暦)

print("$seireki");


print("\n");

// 繰り返し終了


}
?>


Posted by 山田 雄一郎 at 11:59
「Fedora 23」を「Fedora 24」にアップグレード [2016年07月13日(Wed)]
「Fedora 23」を「Fedora 24」にアップグレード


 デスクトップパソコンを「Fedora専用Server」として使い、windowsパソコンから「Tera Term」アプリを使って、「Fedora専用Server」を管理しています。

 最近、「Fedora 24」の進み具合を確認してみると、「2016-06-21 Fedora 24 Final Release (GA)」となっていました。

Releases/24/Schedule
https://fedoraproject.org/wiki/Releases/24/Schedule

 そこで、下のブログを参考にして、「Fedora 23」を「Fedora 24」にアップグレードしました。

Fedora の更新・アップグレード
http://fedorajp.jimdo.com/%E6%9B%B4%E6%96%B0/

 windowsパソコンから「Tera Term」アプリを使って、下のコマンドを入力しました。

dnf upgrade
dnf install dnf-plugin-system-upgrade
dnf system-upgrade download --releasever=24 --best
dnf system-upgrade reboot

 最後のコマンドを入力してから、一晩放置しました。

 翌朝、「Fedora 24」として正常に起動しているか、確認しました。

cat /etc/fedora-release
→Fedora release 24 (Twenty Four)

 「Webmin」→「Others」→「System and Server Status」を確認しました。

Postfix Server→起動中
PostgreSQL Darabase Server→起動していない
Apache Webserver→起動中
Samba Servers→起動中
Squid Proxy Server→起動中

 この後で、「PostgreSQL」を起動するために、ネットで検索して色々実行しましたが、「すぐ解決するだろう」と甘い考えだったので記録を取っていません。

 変わったことといえば、「dnf install postgresql-upgrade」を実行しました。

 ところで、ダウンロードするファイルの記録容量を少なくする目的もあると思いますが、アプリをアップグレードするときに、(使用頻度が少ない?)機能を別のファイルとすることを、(私が)知らなくて苦労した(無駄な時間を過ごした)経験があります。

 「dnf info postgresql*」を実行すると、今まで見たことがない「postgresql-upgrade」が見つかりました。

名前 : postgresql-upgrade
アーキテク : x86_64
エポック : 0
バージョン : 9.5.3
リリース : 1.fc24
容量 : 9.5 M
リポジトリ : @System
From repo : fedora
概要 : Support for upgrading from the previous major release of
: PostgreSQL
URL : http://www.postgresql.org/
ライセンス : PostgreSQL
説明 : The postgresql-upgrade package contains the pg_upgrade utility and
: supporting files needed for upgrading a PostgreSQL database from
: the previous major version of PostgreSQL.

 「dnf install postgresql-upgrade」として、インストールしました。

 しばらくして、「PostgreSQL」が起動していることに気が付きました。

 現在の「PostgreSQL」関係のファイルを表示します。

dnf info postgresql*

インストール済みパッケージ
名前 : postgresql
アーキテク : x86_64
エポック : 0
バージョン : 9.5.3
リリース : 1.fc24

名前 : postgresql-libs
アーキテク : x86_64
エポック : 0
バージョン : 9.5.3
リリース : 1.fc24

名前 : postgresql-server
アーキテク : x86_64
エポック : 0
バージョン : 9.5.3
リリース : 1.fc24

名前 : postgresql-upgrade
アーキテク : x86_64
エポック : 0
バージョン : 9.5.3
リリース : 1.fc24


 「postgresql-upgrade」をインストールすることで、「PostgreSQL」が起動したと見なせばよいのか良くわかりませんが、しばらくこのままで様子を見ることにします。

Posted by 山田 雄一郎 at 09:51
Fedoraサーバーに「IDE → SATA変換アダプタ」を取り付けました [2015年02月15日(Sun)]
Fedoraサーバーに「IDE → SATA変換アダプタ」を取り付けました


 「変換名人 IDE → SATA変換アダプタ L型 IDE-SATALD」を2個買いました。

 「IDE → SATA変換アダプタ」を、DVDとHDDに取り付けて、SATAケーブルでマザーボードにつなぎました。

 マザーボードで、HDDは認識しましたが、DVDは認識できませんでした。

 それで、DVDはIDEケーブルでつなぎ、HDD2個はSATAケーブルで取り付けました。

 Fedora21(64bit)をインストールし起動することができました。

 注意することは

1 「IDE → SATA変換アダプタ」用の電源が必要になります。一つのHDDに、2つの電源ケーブルが必要になります。

 二股ケーブル「ペリフェラル電源コネクタ (大4ピン) オス⇔ペリフェラル電源コネクタ (大4ピン) メス×2」を買いました。


2 マザーボードで、HDDの認識ができないときは、HDDの設定(マスター/スレーブ)を確認します。HDDは2個とも「マスター」に設定しましたが、SATAケーブルでつなぐと正常に認識しました。

 実は、1個のHDDが認識できないので確認したら、HDDの設定が「スレーブ」の位置に設定していました。この前の不具合を確認するときに設定したままで元に戻してなかったものだと思います。

3 HDDによっては、Fedora21(64bit)をインストールしても起動できないものがあります。インストールするまではエラーは出ませんが、HDDから起動使用とすると「真っ黒な画面」のままになりました。

 「Maxtor 6Y160P0042811」(2005年4月購入)は、Fedora21(64bit/32bit)の起動ができました。

 「HITACHI IC35L120AVV207-1」(2003年6月購入)は、Fedora21(32bit)の起動ができました。


 つまり、Fedora21(64bit)のシステムを「Maxtor 6Y160P0042811」にインストールして、「HITACHI IC35L120AVV207-1」はデータ用としました。

Posted by 山田 雄一郎 at 23:49
「Fedoraサーバーのその後」の続き [2015年02月11日(Wed)]
「Fedoraサーバーのその後」の続き


 Fedoraサーバーのその後(2015.1.3)
 ついに、電源スイッチを入れても「bios」画面が出る前に再起動を繰り返すようになりました。

 今日、不具合の原因がわかりました。

 環境が悪いところにパソコンを置いて、動かしたために故障したのでしょう。

 Fedoraサーバー(ASUS P4G800-V)は、2004年に組み立て、最初はwindowsパソコンとして使用しました。その後で、Fedoraサーバーにしました。

 このFedoraサーバーを直す方法としては、@今使っているwindowsパソコンのマザーボードを更新し、取り外したマザーボードをFedoraサーバー取り付ける方法、AFedoraサーバーのマザーボードを更新する という2つの方法がありましたが、@の方法を採用しました。

 windowsパソコンのマザーボードの更新がうまくいったので、今日、Fedoraサーバーのマザーボードを更新しました。

 新しいマザーボード(ASUS P5K)には、「メモリー」と「グラフィックボード」も付けて更新しました。

 古いマザーボードは「IDEケーブル」2本でDVDとHDDをつないでいましたが、新しいマザーボードは「IDEケーブル」が1本しか取り付けられません。

 時代は、SATA(Serial ATA)となっていました。新しいマザーボードは4本のSATAケーブルを取り付けることができました

 IDE用のDVDとHDDをSATAにつなぐ話しは、購入する部品を検討していますので、別の機会に書こうと思います。

 とりあえず、「IDEケーブル」でHDDをつないで起動しました

 DVDとHDDの取り付け場所が離れていて、1本の「IDEケーブル」ではつなぐことができなかったためでした。

 Fedoraサーバーを起動すると、また再起動を繰り返しています。

 マザーボードを交換しても同じ不具合が発生しているので、パソコンケースの不具合かも知れないと思いましたので、マザーボードとパソコンケースの電気配線の接続を確認しましたが異状はありませんでした。

 そこで、パソコンの電源カーブルを外し、パソコンケースのフロントカバーを取りました。

 「ほこり」がたくさんあったのは、掃除機で吸い取りました。

 「電源スイッチ」と「リセットスイッチ」を押すと、戻りが悪いので、正常な位置に戻すには指で引っ張る必要がありました。

 「電源スイッチ」と「リセットスイッチ」が、押した後で正常な位置に戻らないので、再起動を繰り返しているのかと考えて、古新聞紙をパソコンケースの下に敷き「電源スイッチ」と「リセットスイッチ」に防錆潤滑剤をスプレイしました。

 ドライバーの先で、「電源スイッチ」と「リセットスイッチ」を押し込んで離すと、正常な位置に戻りました。

 パソコンケースのフロントカバーを外した状態で、「電源スイッチ」を入れると、HDDの型番と記憶容量を表示した後で画面に「-」が出た状態となりました。再起動は起きませんでした。

 まとめると、次のようになりました。

 「再起動」の原因は、「パソコンケースのスイッチ」が経年劣化で動きが悪くなったためであり、「スイッチ」に防錆潤滑剤を塗布することで不具合が解消した。

 防錆潤滑剤が垂れるのが終わるのを待って、IDE用のDVDとHDDをSATAにつなぐ作業に入りたいと思います。

Posted by 山田 雄一郎 at 23:47
Fedoraサーバーのその後 [2015年01月03日(Sat)]
Fedoraサーバーのその後


 ついに、電源スイッチを入れても「bios」画面が出る前に再起動を繰り返すようになりました。

 「ASUS P4G800-V」マザーボード、CPUと電源しか無い状態では、「ピーピッピッ」と音がして、正常な警報ビープ音が出ているようです。

 4ヶ所のDIMMソケットに、1枚ずつメモリーを差し込んで、4×4の16種類の点検をしました。一見、「bios」設定画面で止まっているようですが、再起動をすると今度は「bios」画面が出なくなるものもあれば、「bios」画面が出ないで黒い画面で止まっているものもありました。

 これ以上は個人ではできないので、「ASUS P4G800-V」マザーボードとCPUが故障していると判断しました。

 新しい「マザーボードとCPU」を買うならば、それに合わせてメモリーをDDR3に、HDD(SSD)やDVDをSATAに、安く手に入るものを買った方が今後の保守を考えるとメリットが多いと思いました。

 そこで、DDR2メモリーをCentOSサーバー(1999年7月 自分で組立)に載せることにしました。

 CentOSサーバーは、「ASUS P4S8X」マザーボードで、メモリーは1GB載っていました。

 ネットで、「ASUS P4S8X」マザーボードの取扱説明書を見ると、DIMM ソケットは3本で、各ソケットで最大1GB(PC2700/2100/1600)、合計で3GBのメモリーに対応していました。

 Fedoraサーバーの「ASUS P4G800-V」用1GBメモリーは、2枚とも「BUFFALO DD400-1G」(PC3200)でしたが、「BUFFALO」のホームページで調べると、「DD400シリーズはDD266シリーズ、DD333シリーズの上位互換となります」と書いてあり、性能は落ちるが使えるようでした。

 CentOSサーバーのケースを開いてメモリーを取り外して確認すると、CPU側と中央が256MBメモリー、CPUと反対側が512MBメモリーでした。

 CPU側と中央を1GBメモリー、CPUと反対側は元の512MBメモリーとして取り付けました。

 パソコンを起動して、「bios」設定画面で確認すると、メモリーは1.5GBしかありませんでした。

 どちらかの1GBメモリーの接触が悪いと判断しました。

 取り外した256MBメモリーを見ると、CPU側のメモリーにホコリがたくさん付いていました。CPUクーリングファンの風が当たってホコリがたくさん付いたと判断して、CPU側のメモリーを外してパソコンを起動すると、メモリーは1.5GBのままでした。

 CPU側のメモリーをしっかり押し込みパソコンを起動すると、メモリーは2GBとなりました。

 メモリーが512MB少ないようですが、このまま2GBで使うことにしました。

 実は、メモリーの取り外しをしているときに、あまりに外れないので両端にあるレバーを少し強く押すと、片側が壊れて飛んでいってしまいました。1999年7月に購入したものですから、15年は経過していますので仕方がないと諦めました。

 メモリーロック用のレバーが無くても電気的に接続しているようなのでこのままにしておきます。

 CentOSサーバーは、「メモリー1GB、swap2GB」から「メモリー2GB、swap2GB」となりましたので少しはメモリーに余裕ができました。

 しばらく様子を見ることにします。

Posted by 山田 雄一郎 at 23:55
「Fedora21」にアップデートする前の状態にする [2014年12月31日(Wed)]
「Fedora21」にアップデートする前の状態にする


(これは「Fedoraのアップグレード 第6報(最終報の追加)」の続きです。)

 「Fedora21」にアップデートする前の状態にするために、CentOSサーバーからデータをコピーしようとしました。

 やり方は、Windows7のパソコンから操作して、「CentOSサーバー」のデータを「Fedora20サーバー」にコピーすることです。

 しかし、「0x800704d I/O エラー」を表示して、データをコピーできませんでした。

 ネットでエラー内容を調べると、「HDDが壊れる前なので、直ちにデータを別のHDDにバックアップしなさい」と書いてあるブログもありました。

 何度コピー操作をしてもエラーとなるので、Windows7のパソコンから操作して、「CentOSサーバー」を再起動しました。

 しばらく待っても、「CentOSサーバー」にアクセスできなかったので、「CentOSサーバー」の設置場所に行きました。

 「CentOSサーバー」は、「ext4」のチェック中にエラーとなり、止まっていました。

 何度、「CentOSサーバー」を起動しても、同じ場所で止まります。

 「/dev/sda」HDDの点検は正常に終わっていました。

 コピーしようとしたデータは、「/dev/sdb」HDDに記録していました。

 そこで、電源プラグを抜いて、パソコンケースを開け、HDDの電源ケーブルを押し込んでみました。

 「/dev/sda」HDDは正常だったのですが、「/dev/sdb」HDDは少し押し込みました。

 「/dev/sdb」HDDにしっかり押し込んだあとで、パソコンケースを閉めて、電源プラグを差し込みました。

 「CentOSサーバー」は正常に起動することができました。

 Windows7のパソコンから操作して、「CentOSサーバー」のデータを「Fedora20サーバー」にコピーすることができました。


 古いパソコンは、電気的な接触が抜けやすくなっていることも考慮しなければならないと実感しました。

 さらに、今回の不具合のように、「CentOSサーバー」が「データが使えないにも関わらず表示することがある」のは気をつける必要があると思います。



Posted by 山田 雄一郎 at 21:55
phpでつくったプログラムの日付が遅れていた [2014年09月28日(Sun)]
phpでつくったプログラムの日付が遅れていた


 午前7時頃、fedora20サーバーのphpでつくったプログラムを表示したら、日付が昨日になっていました。

 CentOS6.5サーバーのphpでつくったプログラムを表示したら、日付は今日でした。

 このphpでつくったプログラムは、CentOS6.5サーバーからfedora20サーバーにコピーしたものです。CentOS6.5サーバー上で不具合はないことを確認しています。

 サーバーの時間関係の設定を探すと、「時間(TimeZone)の設定」は下で書いたようになっていました。

 ネットで検索すると、下で書いた「[PHP] date関数の時間(TimeZone)がずれる」が見つかりました。

 fedora20サーバーの「/etc/php.ini」に「date.timezone = Asia/Tokyo」を追加しました。

 そして、「systemctl restart httpd」を実行することで、「/etc/php.ini」の設定の変更を反映します。

 fedora20サーバーのphpでつくったプログラムの日付は、正常になりました。

 試しに、「date -s "09/28 08:11 2014"」と時刻を変更しても、日付は本日となります。

 このまま日付を元に戻さないで、「/etc/php.ini」の「date.timezone = Asia/Tokyo」を「;date.timezone = Asia/Tokyo」とコメントアウトして、「systemctl restart httpd」を実行すると日付は昨日になりました。

 fedora20サーバー上のphpでつくったプログラムの作動確認を午前9時以降に行っていましたので、「日付が昨日になって」いた不具合には気が付きませんでした。


参考資料
時間(TimeZone)の設定
fedora20
@「timedatectl status」を実行
Timezone: Asia/Tokyo (JST, +0900)

A/etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
Bバージョン
httpd-2.4.10-1.fc20.i686
php-5.5.16-1.fc20.i686

CentOS6.5
@/etc/sysconfig/clock
ZONE="Asia/Tokyo"

A/etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

Bバージョン
httpd-2.2.15-31.el6.centos.i686
php-5.3.3-27.el6_5.1.i686


参考資料
[PHP] date関数の時間(TimeZone)がずれる
Posted on 2011年11月07日
http://amidagamine.com/notes/2011/11/07/php-date%E9%96%A2%E6%95%B0%E3%81%AE%E6%99%82%E9%96%93timezone%E3%81%8C%E3%81%9A%E3%82%8C%E3%82%8B/
date関数が返す時間のTimeZoneを設定するには、”php.ini”の「date.timezone」の値を設定する。
日本時間にするには…

date.timezone = Asia/Tokyo

と、変更する。(ない場合は、追加する)

Posted by 山田 雄一郎 at 10:11
CentOSで、「kernel」を「update」した後で、「reboot」する [2014年09月13日(Sat)]
CentOSで、「kernel」を「update」した後で、「reboot」する


 CentOS(6.5 i386)のサーバーを24時間動かしています。

 いままで、「yum update」を1時間に1回実行していました。

 そして、毎日1回、「logwatch」の記録を見て、「kernel」が「update」していたら、手動で「reboot」をしていました。

 しかし、手動で「reboot」するのは手間がかかるので、自動的に「reboot」する方法を考えました。

 その結果、毎時間ごとの「update」で、午前1時のみ「kernel」の「update」をして、「kernel」が「update」していれば、「reboot」を実行することにしました。さらに、「kernel」が「update」したあとで、メールで知らせるようにしました。

 その方法は、まず、「/home/yum_update_kernel」と「/home/yum.not.kernel.conf」というファイルを作成します。

 そのあとで、「crontab -e」を実行して、上の二つのファイルを書き込みます。

1 crontabの内容
*****開始*****
5 1 * * * /home/yum_update_kernel >> /dev/null
5 0,2-23 * * * yum -y -c /home/yum.not.kernel.conf update >> /dev/null
*****終了*****
説明
1行目:毎日、午前1時5分に「/home/yum_update_kernel」を実行し、結果を記録に残さない。
2行目:毎日、午前1時以外の時間の5分に「yum -y -c /home/yum.not.kernel.conf update」を実行し、結果を記録に残さない。

2 ファイルの内容
@
/home/yum_update_kernel
*****開始*****
#!/bin/sh

yum check-update | grep -i kernel

umu=$?

if [ $umu -eq 0 ]
then
yum -y update
echo kernel_update | mail -s caution root@****.jp
reboot
else
yum -y -c /home/yum.not.kernel.conf update
fi
*****終了*****
説明
1行目:おなじみの呪文なので、確実に書き込んでください。
3行目:「update」するファイルを調べて、「kernel」という名前のファイルがあれば、戻り値が「0」になります。ファイルが無ければ、戻り値が「1」になります。
5行目:「umu」という変数に、戻り値を書き込みます。
7行目:if文で、「umu」という変数が「0」に等しいか確認します。
8行目:「umu」という変数が、「0」に等しいならば、次の行を実行します。
9行目:「yum -y update」を実行します。
10行目:件名「caution」、内容「kernel_update」で、「root@****.jp」にメールを送ります。
11行目:再起動を実行します。
12行目:「umu」という変数が、「1」に等しいならば、次の行を実行します。
13行目:設定ファイル「/home/yum.not.kernel.conf」を使用して、「kernel」以外を「update」します。
14行目:if文終了

A
/home/yum.not.kernel.conf
*****開始*****
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

exclude=kernel*
*****終了*****
説明
/etc/yum.confの最後の行に「exclude=kernel*」を追加した。

3 ファイルについて「所有者または管理者の変更」や「モードの変更」を実行
chown root:root /home/yum_update_kernel
chown root:root /home/yum.not.kernel.conf
chmod 744 /home/yum_update_kernel
chmod 644 /home/yum.not.kernel.conf
Posted by 山田 雄一郎 at 23:36
プロフィール

山田 雄一郎さんの画像
山田 雄一郎
プロフィール
ブログ
リンク集
http://blog.canpan.info/hofu_nanboku/index1_0.rdf
http://blog.canpan.info/hofu_nanboku/index2_0.xml