Linuxゲリラ戦記

「『あなたが好き』という気持ちを、tmpディレクトリに置いておいたわ」
「ちょっと待ってそれどういう意味?」

70.tmpディレクトリの話

ナックス「今日は画像収集プログラムの作成を一歩進めよう」

デビー君「はーい」

ナックス「といっても、基本的な考え方はGoogleのAPIを使って作成した画像収集プログラムと同じです」

ナックス「前回は、大量の画像のアドレスを次々とファイルに出力して(書き込んでっていう意味です)そのファイルに対して以下のwgetコマンドを使用しました」

$ wget -i ファイル名

ナックス「このコマンドでファイルに書かれているアドレスから、画像を一気に取得することができます」

ナックス「で、ダウンロードし終わった後はこのファイルはもう不要なので削除したのでした」

ナックス「ということを覚えていますか?」

デビー君「いいえ。まったく」

ナックス「でしょうね。だけど、今回話したい内容は、デビー君がいかに忘れっぽいかではなく、この大量の画像アドレスを書き込んで、ダウンロード後に削除する、この一時的に使用するファイルのことです」

デビー君「ほう?」

ナックス「プログラムの処理のために一時的に使用するファイル、これはプログラマーの中でよく言われるテンポラリファイルのことではなかろうか?」

デビー君「プログラミングの処理で一時的に使うファイルのことをテンポラリファイルっていうの?」

ナックス「うん。多分」

デビー君「多分か……」

ナックス「で、実はLinuxにはテンポラリファイル用のディレクトリがある。それがtmpディレクトリだ!!」

ナックス「tmpディレクトリはrootディレクトリ(一番上のディレクトリ)にあるよ」

デビー君「へー。見てみよう」

$ cd /
$ ls -l

tmpディレクトリ

デビー君「本当だ。しかもディレクトリのパーミッションがdrwxrwxrwxになってる!誰でも書き込みできるんだね」

ナックス「そうです。ググったところ、tmpディレクトリにファイルやフォルダを置いておくと、ある一定の期間、もしくは再起動時などに自動的に削除されるそうです。まさに一時的に使うファイルを置くためだけのディレクトリ!」

デビー君「へー」

ナックス「ただ、ディストリビューションによって削除されるタイミングが違うそうです」

ナックス「どうやらDebian系の場合は基本的には再起動時に削除。Redhat系では一定時間経ったら削除。ただし、Debian系は設定ファイルをいじることで再起動時ではなく、一定時間経ったら削除というように、挙動を変更できるようです。補足に参考サイトを載せたので見てみてね」

デビー君「はーい」

ナックス「というわけで、今回作成するプログラムでは私達もtmpディレクトリの中に一時ファイルを作成して、プロな気分に浸ろうと思う」

デビー君「いいねぇ」

ナックス「次回、71.tmpディレクトリの話2

補足

パーミッションってなんでしたっけ?

そのファイルやディレクトリに対しての、読み込み権限、書き込み権限、実行権限のことです。詳しくは29.ファイルのアクセス権限を変更しよう。chmodコマンドを参考にしてください。

参考サイト
Linux - /tmpと/var/tmpの仁義無き戦い - Qiita
RedhatとDebianでのtmpの扱われ方 - 見方次第
debian で /tmp 以下を起動時に削除しない - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -
へそブルー - 画像検索サイト」に関して

この画像検索サイトですが、bingのAPIを使用して作成しています(Bing Search API | Microsoft Azure Marketplace)。で、APIに制限がありまして、1ヶ月につき5000回しか検索できません。

たまに画像検索サイトで検索できなくなってる場合がありますが、私のせいじゃないよ。検索制限回数に達したからだよ。

最近、へそブルーで検索できないことが頻発しています。たぶん、自力で画像収集スクリプトを作成して、へそブルーを利用している人がいると思うのですが、可能であれば検索回数をできるだけ少なくして収集できるようにスクリプト修正していただけると助かります(画像の検索結果一ページにつき2回APIにリクエストを投げています。つまり、例えば wget "http://www.heso.blue/?text=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2&page=1" という風に1回wgetコマンドを使用すると2回APIを使用したことになります。)

また、これを見ている人で「画像検索サイトを通してじゃなくて、Bing APIを直に教えてくれればいいのに」と思っている方もいると思いますが、このAPIは無料で使えますが、使用にメルアドの登録が必要です。そして、私は初心者の方の心を読めるのですが、プログラミング初心者の人って「メルアド登録したらAPI無料で使えるからメルアド登録してね」って言っても絶対に面倒臭がってメルアド登録してくれないじゃないですか。そして私のサイトから去るんだ……。というわけで解説ではへそブルーを使用して画像収集プログラムを作成する予定です。ただ、もしチャレンジ精神があるならぜひBing Search API | Microsoft Azure Marketplaceを解読して直接APIを叩いて画像収集するプログラムを作成することに挑戦してみてください。

このエントリーをはてなブックマークに追加