作業ノート

様々なまとめ、雑感など

logrotateの設定メモ

仕事で小さなプログラムを書くことになり、その出力ログを管理するために簡単なlogrotateの設定を行った。そのときのメモ。

cat <<'EOT' | sudo tee /etc/logrotate.d/foo > /dev/null
/path/to/log/foo.log {
    missingok
    monthly
    rotate 36
    compress
    ifempty
    create 0664 bar bar
    dateext
}
EOT

設定項目

各項目の役割について。

missingok

ローテーションするログがなくてもエラーにしない。

monthly

月1回、ローテーションする。/var/lib/logrotate.statusで管理している日付を基準にする。

$ cat /var/lib/logrotate.status
logrotate state -- version 2
...
"/path/to/log/foo.log" 2017-10-16
...

rotate 36

過去ログをいくつ管理するか。 monthlyの36なので、3年分(12*3)。

compress

過去ログをgzipで圧縮する。

ifempty

ローテーションするログが空ファイルであっても、ローテーションする。

create 0664 bar bar

対象ログのモード、所有者、所有グループ。

dateext

過去ログのファイル名を日付ベースにする。このオプションをつけると、過去ログのファイル名は

/path/to/log/foo.log-20171016

このようになる。

上記の設定の場合、compressがあるので

/path/to/log/foo.log-20171016.gz

このようになる。

論理トレーニング101題を読んだ

随分前に購入したが、読む機会ができたので読んだ。

論理トレーニング101題

論理トレーニング101題

本書の例題を通じて感じるのは、書かれている文章が安定しているとは限らないという事実である。

内容を理解するために読んでいる段階で、言葉の誤用や論理的に破綻しているかもしれない文章を、自身の論理力を用いて読み解かなくてはならない。

「読みにくい」「わからない」と判断するのは簡単だが、それが文章の不安定によるものか、自身の論理力の弱さなのか、書かれている言葉の意味が理解できていないか、そのときの自分にはわからないのである。

そのような事実のもとで自分にできることは何か。既に書かれている文章を変えることはできない。それなら自身の論理力を鍛えて自分になりに読み解く他にない。

文章の読解の難しさを気付かされた、そういう本だった。

みんなのPython 第4版を読んだ

みんなのPython 第4版

みんなのPython 第4版

ここのところずっとPHPのレガシーなシステムを担当しているのもあって、他の言語を使う機会がない。そこで、久しぶりにPythonをやってみることにした。

Pythonにしたのは今、Python言語によるプログラミングイントロダクションを読んでいるから。本書は、Pyhonに関する本をamazonで調べて購入した本のなかの一冊。

本書は、Pythonを使い始める前段階としてPython3のことを知るための入門書である。

内容はPythonの概要から始まり、Anacondaのインストール、言語仕様、データサイエンス、そしてPython2について。

全体的に、図表やプログラムを用いてわかりやすく説明している。プログラムはインタープリター実行可能なくらいにシンプルなものなので、Python3が実行できる環境であれば試せる。

一方、自分がその内容を理解したどうかを確認するための方法、例えば章末にあるような演習問題といったものはない。

だから、まず本書でPythonのことを知り、より深く理解するために他書を読んだり、コードを書いてみる。そのときわからないことがあれば、本書を読み直してみる。そのような使い方になる本だと思った。