投稿

3月, 2013の投稿を表示しています

[Powershell] 日付計算とか日付に関するあれこれ

いきなり仕事でPowerShellいじってと言われてちょっと困惑、
プログラム触れてちょっと嬉しいTearTheSkyです。
久しぶり過ぎて忘れまくっているんですが… どのプログラムでも必要になる、日付計算
まずPowerShellで日付を取得するのはget-dateコマンドです。 PS C:\Users\TearTheSky> Get-Date 2013年3月31日 11:41:11
こちらのサイトを参考にさせていただいたんですが、
PowerShell/Get-Dateで前日、翌日、前月、翌月などの日付を取得する方法

PowerShelだと日付型のオブジェクトに対して、
addDays
addMonths
addYears
といったプロパティが利用できるようです。

以下のようにすると、面倒くさい日付計算なしに、
1ヶ月前の日付を取得することが可能です。

PS C:\Users\TearTheSky> (Get-Date).addMonths(-1) 2013年2月28日 12:10:32

これはすごく便利ですね。

で、問題はここからで、


こーいう風に変数に入れたくなるじゃないですか。

PS C:\Users\TearTheSky> $lastmonth = (Get-Date).addMonths(-1)

そしたらこういう風に表示されますよね。

PS C:\Users\TearTheSky> $lastmonth 2013年2月28日 21:05:21
で、今のままだと$lastmonthはdate型だから、文字列型…stringにしたいと思うじゃないですか。
それでこうしてみたんです。


PS C:\Users\TearTheSky> [string]$lastmonth = (Get-Date).addMonths(-1) PS C:\Users\TearTheSky> $lastmonth 02/28/2013 21:05:46 PS C:\Users\TearTheSky>
!?

いや、アメリカ式表記にしなくていいから!

そこで思い返りました。
俺が欲しいのって、yyyymmdd形式の8桁の情報だよな…と言うことは
こうすれば…


PS C:\Users\TearTheSky> $lastmon…

[#CentOS][#Apache]Apacheにアクセスできない

Apacheが起動するようになったんだけど、なぜかクライアントからアクセスできない…。

ポートが開いているか確認

# netstat -ln | grep 80
tcp        0      0 :::80                       :::*                        LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     8801   private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     8805   private/relay
unix  2      [ ACC ]     STREAM     LISTENING     8809   public/showq

LISTENしてる。
状態確認してみても



$ /etc/init.d/httpd status
httpd は停止していますがサブシステムがロックされています


ん??
なにこれ。
ググってみると、80番が競合とかしてるんじゃないの?とのこと。

# /etc/init.d/httpd status
httpd (pid  1863) を実行中...

rootだと実行中になってるよね。


$ sudo /etc/init.d/httpd status
httpd (pid  3128) を実行中...

これは権限上そうなるというだけで、問題ないみたいだ…。


ググってみたところ、ロックファイルのせいかもしれないということで、ロックファイルを削除…


# rm /var/lock/subsys/httpd

結局原因はiptablesの設定不足でした。

iptablesについてはまた纏めて別記事にしよう。

[#CentOS][#Apache] CentOS6 でApacheが起動できない

CentOS 6 で httpd を起動させようとした時のこと

$ sudo /etc/init.d/httpd start
httpd を起動中: httpd: bad user name apache   [失敗]

なんじゃこりゃ。


■問題
Apacheが起動できない。問題はapacheユーザ


■原因
httpd.confには ユーザ:apache グループ:apache でhttpdを起動するようになっている。
ユーザとグループを確認してみよう…


$ cat /etc/passwd | grep apache
$


ユーザが居ない…


$ cat /etc/group | grep apache
apache:x:48:

グループはある。なんでこうなってんだ?


■対処
ユーザ「apache」を作ってグループ「apache」に入れてあげよう。


# useradd -g apache apache
useradd: /etc/passwd をロックできません。後でもう一度試してください。


は?(#゚Д゚)


# ll /etc/*.lock
-rw-------. 1 root root 5  2月 12 07:29 2013 /etc/passwd.lock
-rw-------. 1 root root 5  2月 12 07:29 2013 /etc/shadow.lock

これを消すか

# rm /etc/passwd.lock
rm: remove 通常ファイル `/etc/passwd.lock'? y
# rm /etc/shadow.lock
rm: remove 通常ファイル `/etc/shadow.lock'? y


これでもう一度apacheをuseraddして…あれ、もしかしてロックファイルがApahceをインストール剃る前からあって、もしかしてyumのインストールシーケンスの中でユーザ作成だけ失敗してたりしてるのかな?

ということでApacheをインストールし直す方向で。

# yum remove httpd
$ sudo yum install httpd httpd-devel mod_wsgi

Pythonの勉強したいからmod_wsgiも入れてます。
で、yum入りました。


Transaction Summary
=====================================…

情報処理技術者試験 データベーススペシャリスト 松岡修造で分かる2相コミット

こんにちは。データベーススペシャリスト試験に向けて
勉強を少しずつ開始しています。

仕事忙しくて今回も勉強時間確保できなくて落ちそう…
とか言ってるから落ちるんだよな。
頑張らないと。


さて、過去の自分のつぶやきをたどっていたら
データベースのコミット処理方式の2相コミットについて
こんなつぶやきをしていました。

どうやら2相コミットとは


松岡修造で分かる 2相コミット
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 サーバ「はい君たちデータベースの書き換えやるよー!準備できてますかー!できてるならCOMMIT送って!はい送って!駄目ならROLLBACK送ってね!ダメでも送ることが大事!」
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 サーバ「ハイAくんコミット!ハイBくんもコミット!Cさんもコミットきたよ!!あとDくんだよ!Dくん準備できてますかー!」
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 サーバ「Dくんロールバック!はいやめー!!みんなデータもどして!ロールバックロールバック!!みんなで進歩することが大事だからね!!ボクは一人もおいてかないよ!!」
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010


ということらしい。
つまり、

みんなコミットを送ってきたら、改めて全DBにコミットを指示して全DBを更新させる。
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010
全体一致でCommitしない限りロールバックっていうことですかねー。


理解した!!
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010 おなかすいた
— TearTheSky(てあざすかい) (@TearTheSky) March 29, 2010
データベースはに限らないですけど、試験に出るIT要素は、ちゃんと環境を用意して触ってみないと何かよくわからないままフワフワした感覚で覚えちゃいますよね。で、すぐ忘れる。
こうやってつぶやいたらまとめる勉強法は有りかもしれませんね。
そして自分のつぶや…