crontabの
0 4 * * * /usr/local/pgsql/bin/pg_dump foo > /tmp/foo`date +%Y%m%d`.dmp
がどうも動かないと思ったら、
CRONTAB
「 第 6」フィールド (行の残りの部分) には実行されるコマンドを指定する。その行のコマンド部 (改行文字または文字まで)が /bin/sh (またはその crontab ファイルの SHELL 環境変数で指定されたシェル) によって実行される。コマンド中にパーセ ント記号 () がバックスラッシュ (\) によってエスケープされずに置かれていると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。
””%”“は改行として扱われるのかっ。
普通にman crontabするとセクション1のcrontabの方の説明が出るので見逃してました。
THE LINUX MAN-PAGE-HOWTO : man page はいかにしてアクセスされるか?作成する man page に正しい名称を与え、正しい場所にインストールするため には、man page がどのようにアクセスされるかについての正確な仕組みを知 ることが必要である。man page はすべて、特定のセクションに所属しており、 このセクションは1文字で表されている。Linux での標準のセクションとその 意味は次の通り。
セクション 名前
1 だれもが実行できるユーザコマンド 2 システムコール、つまり、カーネルが提供する関数 3 サブルーチン、つまり、ライブラリ関数 4 デバイス、つまり、/dev ディレクトリのスペシャルファイル 5 ファイルフォーマットの説明、例 /etc/passwd 6 ゲーム(説明不要だろうネ) 7 その他 例: マクロパッケージや取り決め的な文書 8 システム管理者だけが実行できるシステム管理用のツール 9 Linux 独自のカーネルルーチン用のドキュメンテーション n 新しいドキュメンテーション:よりふさわしい場所に移動されるだろう o 古いドキュメンテーション 猶予期間として保存されているもの l 独自のシステムについてのローカルなドキュメンテーション
エスケープすればよいと。
0 4 * * * /usr/local/pgsql/bin/pg_dump foo > /tmp/foo`date <strong>+\%Y\%m\%d</strong>`.dmp