特定の文字列を含まないファイル一覧を取得する

Posted on 月 09 10月 2017 in tech • Tagged with shell, perl

hogeとファイル中に記載されていないファイル一覧を取得したい。

ワンライナーで書けたのでメモ。

find . -name "*.html" -print0 | xargs -0 perl -nle '/hoge/ and close(ARGV) and next; print "$ARGV" if eof(ARGV);'

findでファイルを読み込む。 perlclose(ARGV)は現在読み込み中のファイルをクローズする操作で、ただ、クローズ直後はファイルポインタがEOFになっただけなので、nextしてループを次にすることで、次のファイルを読み込みに相当させる。Perlではループ終了のための構文はbreakではなくてlastだが、上記でnextじゃなくてlastを記述すると、プログラム自体が終了してしまう。

雑な解説。


Continue reading

nginxでCGI実行環境を整える

Posted on 水 10 5月 2017 in tech • Tagged with nginx, cgi, perl

MovableTypeのサイトをAWSに移行した際のメモ。

環境はAWSのubuntu 16.04 LTS。PerlのCGI環境を整えた。

nginxインストール

$ sudo apt -y install nginx

CGI実行ラッパをインストール

nginxはCGIを実行できないらしく。CGIをFCGIでラップするfcgiwrapを用いる。

$ sudo apt -y install fcgiwrap

nginx設定

nginxの大元の設定ファイルは

/etc/nginx/nginx.conf

で、当該ファイルのincludeで読み込むファイルに下記を追記することで、.cgi のファイルをCGIとして実行できる。

server {
~~~ 中略 ~~~
    location ~ \.cgi$ {
        root /path/to/root;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name …

Continue reading