cronログが出ていない

Ubuntu 14.04で表題の通りである。

■ 環境

  • Ubuntu 14.04

■ cron.log

下記が出力されているかと思いきや出力されていなかった。

/var/log/cron

どうやら初期設定ままでは出力されないようである。

/etc/rsyslog.d/50-default.conf

上記ファイルの”cron“がコメントアウトされているのでコメントインする。

cron.*    /var/log/cron.log

rsyslogを再起動する。

# service rsyslog restart

これでログが出力されるようになった。

ちなみにUbuntu 16.04では問題無い。

以上。

.localized

Macにおいて表題のファイルによる影響。

■ 環境

  • Mac OSX El Capitan

■ .localized

特に気にしたことはなく、そういうものなんだと認識していたのでFinderで見るときと、ターミナルでコマンドで移動するときは勝手に読み替えていたのだが”.localized“という0byteのファイルを消せば統一できるということを知った。

.localizedがあるとき。

.localizedを削除したあと。

~/Application/.localized“も削除したのだが影響が出なかった。”マイファイル“はそもそもどこを指しているのかよくわからなかったので気にしていない。

以上。

Posted in: Mac | Tagged:

CONCAT & CAST & LPAD

Amazon Athenaで表題の関数について。Amazon Athenaに限った話ではなくSQLの話だけれども…。

■ 環境

  • Amazon Athena

■ きっかけ

やりたいこととしては単純に『カラムの値を連結したい』ということだけのはずだった。もうずっと単純なSQLしか書いていなかったのでここら辺の関数についていろいろ忘れておりはまってしまった。

■ CONCAT

文字列として連結したいんだから、”CONCAT“でいけるだろうと思い試してみたところ、下記のエラーが出た。

Error running query: SYNTAX_ERROR: line 1:185: Unexpected parameters (integer) for function concat. Expected: concat(array(E), E) E, concat(E, array(E)) E, concat(array(E)) E, concat(varchar)

あれ?と思いドキュメントを見ていると下記を発見。

Concatenating Arrays
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/concatenating-arrays.html

いややりたいことは”文字列“としての連結であって、配列の連結ではない。ということでこれは違う。もう一度エラーメッセージをよく見てみると下記の通り。

concat(varchar)

できるはずである。としばし考えて気がついた。対象のカラムの型が”int“であった。では”CAST“を挟めば良いのか。ということで下記のような感じになった。

select concat(cast(year as varchar), cast(month as varchar), cast(day as varchar)) ...

しかし得られた結果がこれでは微妙であった。”2018316“。”0“パディングしなければならない。”LPAD“の出番である。”LPAD“だから戻ってくるのは”varchar“だよね、と思い下記のように書き換えた。

select concat(cast(year as varchar), lpad(month, 2, '0'), lpad(day, 2, '0')) ...

実行すると下記のようなエラーが…。

Error running query: SYNTAX_ERROR: line 1:215: Unexpected parameters (integer, integer, varchar(1)) for function lpad. Expected: lpad(varchar(x), bigint, varchar(y))

これもエラーログをよく読んでみれば解決した。ここも”CAST“が必要であった。

最終的に下記で思い通りの結果を得られた。

select concat(cast(year as varchar), lpad(cast(month as varchar), 2, '0'), lpad(cast(day as varchar), 2, '0')) ...

以上。

aws route53 get-hosted-zone

先日に続いて表題のコマンドについて。

■ 環境

  • awscli 1.14.50
  • Mac OSX El Capitan

■ route53 get-hosted-zone

Hosted zone“の詳細を取得する。`get-hosted-zone`には必須オプションで”–id“が必要であるので、先日の`list-hosted-zones`で得られるIDを用いる。

$ aws route53 list-hosted-zones
  :
$ aws route53 get-hosted-zone --id /hostedzone/XXXXXXXXXXXXXX
{
    "HostedZone": {
        "Id": "/hostedzone/XXXXXXXXXXXXXX",
        "Name": "withsin.com.",
        "CallerReference": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "Config": {
            "PrivateZone": false
        },
        "ResourceRecordSetCount": 12
    },
    "DelegationSet": {
        "NameServers": [
            "ns-XXX.awsdns-XX.net",
            "ns-XXX.awsdns-XX.org",
            "ns-XXX.awsdns-XX.com",
            "ns-XXX.awsdns-XX.co.uk"
        ]
    }
}

ここで得られた”NameServers“をドメインを取得した管理元に設定する。

以上。

■ 関連

aws route53 list-hosted-zones

aws route53 list-hosted-zones

表題のコマンドを実行する。Route53系のコマンドを叩きたいのだが、まずは”hosted-zone-id“を知らなければいけないようなので取得したい。

■ 環境

  • awscli 1.14.50
  • Mac OSX El Capitan

■ route53 list-hosted-zones

Hosted zone“の一覧を取得する。

$ aws route53 list-hosted-zones
{
    "HostedZones": [
        {
            "Id": "/hostedzone/XXXXXXXXXXXXXX",
            "Name": "withsin.example.com.",
            "CallerReference": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "Config": {
                "PrivateZone": false
            },
            "ResourceRecordSetCount": 7
        },
  :
    ]
}
$

id“は”/hostedzone/“から始まるようだ。またその”Hosted zone“にいくつのレコードが登録されているかも取得できる。

さて”hosted-zone-id“が取得できたので、これを元に他のサブコマンドを使用してやりたいことができそうである。

以上。