
クローンでファイル名に日付を付けるコマンドが実行できない。
サーバ初心者です。安価なレンタル専用サーバでいろいろ練習中です。
WADAX専用サーバ エントリープラン
GUIソフト:PLESK8.3使用
Red Hat Enterprise Linux 5
PHP 5.1
MySQL 5.0
クローンでファイル名に日付(`date +%y%m%d`)を付ける以下のようなコマンドが実行できません。なぜだか分かりますか?
mv /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`date +%y%m%d`
上記のコマンドは、SSHのコマンドラインに直接打ち込めば実効できます。
[root@ns my_backup_plesk]# mv /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`date +%y%m%d`
また、日付の部分(`date +%y%m%d`)を通常の文字(例:test)に変更すれば、クローンで実行できます。
mv /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_test
どのようにすると、クローンでファイル名に日付が付けられるのでしょうか?
<その他の例>
以下のようなスクリプトファイルを作成してクローンで実行しても、ファイル名に日付を付けることはできませんでした。スクリプトファイルをクローンで実行できません。
#!/bin/sh
mv /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`date +%y%m%d`
以下のようなコマンドをクローンで実行しても、実行されませんでした。
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`date +%y%m%d`
(ただし、上記のコマンドは、SSHのコマンドラインに直接打ち込めば実効できます。)
しかし、日付の部分(`date +%y%m%d`)を削除(又は通常の文字列に変更)すれば、クローンで実行できます。
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all
よろしくお願いします。
投稿日時 - 2010-04-11 22:57:25
実行しました。
*/5 * * * * /bin/touch /home/user/crontest_`date +%y%m%d`
で実行。
cronのログがdate +で切れている状態でファイルは作成されず。
+で切れている…ということで、%がcronによってカットされたものと推測。
*/5 * * * * /bin/touch /home/user/crontest_`date +\%y\%m\%d`
に修正。
ログには正しく最後まで記述されているが、ファイルは作成されず。
# dateコマンドが所在不明で実行できなかったのでしょう。
*/5 * * * * /bin/touch /home/user/crontest_`/bin/date +\%y\%m\%d`
に修正。
ログ出力もされ、ファイルも作成されました。
以上です。
投稿日時 - 2010-04-12 01:04:41
Wr5さん
ご回答、ありがとうございました。
>*/5 * * * * /bin/touch /home/user/crontest_`/bin/date +\%y\%m\%d`
>に修正。
>ログ出力もされ、ファイルも作成されました。
上記を参考に以下のコマンドで、クローンを利用して実行できました。
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`/bin/date +\%y\%m\%d`
投稿日時 - 2010-04-12 12:17:11
このQ&Aは役に立ちましたか?
3人が「このQ&Aが役に立った」と投票しています
回答(4)
こんばんわ。
単純にシェルファイルに実行権限(x)がついていないだけじゃ。。。。
*私もシェルをcrontabに登録する時によくやるので
ちなみに、cron実行時にログにはなんてでてますか?
(/var/log/messagesや/var/log/cronで確認されてみたら。。)
投稿日時 - 2010-04-11 23:27:50
seednyanさん
ご回答、ありがとうございました。
>ちなみに、cron実行時にログにはなんてでてますか?
>(/var/log/messagesや/var/log/cronで確認されてみたら。。)
/var/log/messagesには、特に何も関連するものは表示されていません。
/var/log/cronには、以下のように表示されています。
Apr 11 23:36:51 ns crontab[13541]: (root) LIST (root)
Apr 11 23:37:01 ns crond[3840]: (root) RELOAD (cron/root)
Apr 11 23:37:02 ns crond[13543]: (root) CMD (/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`/bin/date +)
クローンは、「Apr 11 23:37」に実行するように指定していました。
以下に関しては、確認中です。しかし、シェルファイルなしでクローンだけでも実行できそうなものですが...
>単純にシェルファイルに実行権限(x)がついていないだけじゃ。。。。
>*私もシェルをcrontabに登録する時によくやるので
投稿日時 - 2010-04-11 23:44:09
seednyanさん
ご回答、ありがとうございました。
>単純にシェルファイルに実行権限(x)がついていないだけじゃ。。。。
>*私もシェルをcrontabに登録する時によくやるので
シェルファイルに実行権限(x)を付加することで、以下のシェルファイルをクローンで実行できました。
#!/bin/sh
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`date +%y%m%d`
上記のコマンドを、シェルファイルを使用せず、クローンのみで行ないたい場合、Wr5さんのご説明されていることを解決しないとだめなようです。
現在の私の力量では解決できませんでした。
どなたか、Wr5さんのご説明されていることがお分かりの方おられたら、ヒントを下さい。私の方でも、Wr5さんのご説明されていることは理解できるのですが、実際のクローンでの実行ができない状態です。
投稿日時 - 2010-04-12 00:10:12
CentOS5.4でdateコマンドは/binディレクトリにあります。
# まぁ、他のディストリビューションでもさすがに変わらんでしょう。
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`/bin/date +%y%m%d`
とやったらどうなりますか?
http://www.google.co.jp/search?hl=ja&source=hp&q=cron+PATH&lr=&aq=f&aqi=g-c1g-m1&aql=&oq=&gs_rfai=
投稿日時 - 2010-04-11 23:23:02
Wr5さん
ご回答、ありがとうございました。
dateコマンドは/binディレクトリにありました。
しかし、以下のコマンドをクローンで実行してもだめでした。ただし、SSHに直接コピ&ペーストすると実行されます。
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`/bin/date +%y%m%d`
よろしくお願いします。
投稿日時 - 2010-04-11 23:32:43
dateコマンドをフルパスで書いたらどうなりますか?
投稿日時 - 2010-04-11 23:06:26
Wr5さん
ご回答、ありがとうございました。
>dateコマンドをフルパスで書いたらどうなりますか?
未熟なもので分からないのですが、dateコマンドをフルパスで書く方法があるのですか?グーグルでざっと調べましたが、dateコマンドにパスがついている物は見当たりません。
dateコマンドにどうやってパスを指定するか、ヒントをもらえますか?
投稿日時 - 2010-04-11 23:08:36
以下などもクローンで実行してみましたが、やはり実行されません。
/usr/local/psa/bin/pleskbackup all /root/my_backup/my_backup_plesk/scheduled_backup_plesk_all_`/root/my_backup/my_backup_plesk/date +%y%m%d`
どなたか間違いが分かる方、おられますか?
投稿日時 - 2010-04-11 23:18:54