root ユーザのメールを全削除するコマンド
cp /dev/null /var/spool/mail/root
cp /dev/null /var/spool/mail/root
# ファイルを空にする cp /dev/null /tmp/a.txt > /tmp/a.txt :> /tmp/a.txt : > /tmp/a.txt echo -n > /tmp/a.txt
「cp」コマンドは以前投稿しました。「無」ファイルをコピーするイメージです。
「>」は左側の内容を右側のファイルに書き込みます。最初の「何もなし」は、それこそ「無」をファイルに書き込んでいると考えればよいのだと思います。
次の2つですけれども、「:」という何もしないコマンドを使用しています。
「:」は何もしない。「:」を実行した後に0を戻り値として返す。
この説明だけを読みますと、ともすれば「0」がファイルに書き込まれてしまうのでは?と思いましたけれども、「何もしない」部分が書き込まれるようです。実際に試してみました。
何もしないということが「>」に渡される = 結果のないデータ(つまり「無」)がファイルに書き込まれる、ということではないでしょうか?妄想ですので正しいかどうかはわかりません♪
また、「:>」でも「: >」でも同じ結果となりました。これは、「:>」というコマンドがあるわけではなく、「:」と「>」というコマンドの組み合わせであるということがわかります。
ファイルを空にする、という動作があまりにも特殊ですので、最初は「:>」というコマンドがあるのかと思っておりました。
標準出力になにもないものを出力し、それを「>」でファイルに上書きすることで空にしております。
このとき、改行が書き込まれてしまうため、ファイルが空にならない問題が発生しますけれども、echo に「-n」オプションを付けて「最後の改行を出力しない」ようにすれば解決ですの♪
\cp -f /dev/null /var/lib/denyhosts/hosts \cp -f /dev/null /var/lib/denyhosts/hosts-restricted \cp -f /dev/null /var/lib/denyhosts/hosts-root \cp -f /dev/null /var/lib/denyhosts/hosts-valid \cp -f /dev/null /var/lib/denyhosts/users-hosts \cp -f /dev/null /var/lib/denyhosts/users-invalid \cp -f /dev/null /var/lib/denyhosts/users-valid
以上のコマンドで記録をリセットした後、/etc/hosts.deny の情報を削除して denyhosts を再起動し、登録されてほしくないホストが hosts.deny に書き込まれないことを確認した、というように使用いたしました。
# ファイルを空にする(基本) cp /dev/null /tmp/a.txt # 複数ファイルを空にする(応用) ¥cp -f /dev/null /tmp/a.txt ¥cp -f /dev/null /tmp/b.txt ¥cp -f /dev/null /tmp/c.txt
複数ファイルを空にする方ですけれども、これは1回のコマンドで空にする方法ではございません。
空にするファイルのリストが手元にありましたらそれらの先頭に「¥cp -f /dev/null」をつけるだけでコマンドがお手軽に完成する、そういう意味ですの。
WordPress を 3.5 にアップグレードしたいです!でも更新ページへと行くと、「重要: アップグレードの前に データベースとファイルをバックアップしてください。」とメッセージがっ!無視するのも良くないですし。。。ということで本家の説明を見てきました。次のページです。
とても詳細に説明されています。ここで書かれているポイントは、WordPress サイトのファイル全部と、データベース全部のバックアップをとろうよ!ということですね。
これらのポイントを満たすよう黒い画面、つまり SSH でコマンドでささっと済ませてしまいましょう。そして次回も簡単にバックアップが取れるようシェルスクリプト、つまりちょっとしたアプリにしてしまいます。