隔週の日曜日に実行させるには、これで問題ありませんでしょうか?
30 4 * * 7/14 cron.sh

ちなみに毎週日曜日の4:30だと以下だと思うのですが、これでも動作しないようでした。0が駄目なのでしょうか?
30 4 * * 0 cron.sh

このQ&Aに関連する最新のQ&A

A 回答 (3件)

30 4 * * 0 cron.sh


は正しいと思います。動かないのはパスの問題では?
30 4 * * 0 /home/hoge/cron.sh

cronだけで出来ないので、testとかと組み合わせて実現します。
一行でやってもいいのですが見づらくなるので私なら下記のようにします。
# 1-7 日で、date +%w が 0 のとき実行。(つまり第一日曜に実行)
30 4 1-7 * * test $( date +%w ) -eq 0 && /home/hoge/cron.sh
# 第二日曜に実行
30 4 8-14 * * test $( date +%w ) -eq 0 && /home/hoge/cron.sh
# 第三日曜に実行
30 4 15-21 * * test $( date +%w ) -eq 0 && /home/hoge/cron.sh
# 第四日曜に実行
30 4 22-28 * * test $( date +%w ) -eq 0 && /home/hoge/cron.sh
# 第五日曜に実行
30 4 29-31 * * test $( date +%w ) -eq 0 && /home/hoge/cron.sh
    • good
    • 0
この回答へのお礼

大変参考になります。まだ試せていませんが、、、

パスについては、フルパスで記述していますので問題ないようなのですが、ホスティング会社のやり方に適応させきれていないのか、動作していませんでした。

お礼日時:2009/08/24 01:23

cronて、使い方はシンプルだけど意外と動きません。



大抵の場合、スクリプトの中のパスかパーミッションに変なところがあります。
大きなスクリプトをいきなり動かそうとせず、動作確認をしながら、
進めていくことを勧めます。

cronで実行しているのは、どうも、ユーザ本人がそのディレクトリで
実行とは少し違うような気がします。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
意外と動かないとお聞きし、なぜか安心しました。

パス、パーミッションを中心に調査しなおしたいと思います。

お礼日時:2009/08/24 01:25

http://ja.wikipedia.org/wiki/Crontab

にいろいろ例示がありますね。
参考までに
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

お礼日時:2009/08/24 01:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCRONを使ってshファイルの書き方がわからない

下記のやり方はうまくいきました
#!/bin/sh
/usr/local/bin/php /home/cron/index.php


以下の場合(パラメータが入った場合)がうまくいきません
#!/bin/sh
/usr/local/bin/php /home/cron/index.php?id=35

宜しくお願いいたします

Aベストアンサー

?って、ブラウザからGETリクエストでパラメータを渡すための区切り文字です。

PHPのスクリプトをサーバ上で動作させるなら、普通にスペース区切りによるパラメータ指定になると思いますが...

cronとは関係なくシェル上で /usr/local/bin/php /home/cron/index.php?id=35 で成功してます?
cronで実行するなら、まずはシェル上で実行できるか確認した方が良いですよ。

Qcronでバックアップsh

現在、hetemlというレンタルサーバでバックアップ用のシェルをcron登録しているのですが、
権限エラーが出てしまいます。何の権限エラーなのか解らないのですが、
どなたかご存知ないでしょうか?

[エラーメッセージ]
/bin/sh: /home/sites/heteml/users/xxx/db_bakkup.sh: Permission denied

[シェル]
#!/bin/sh

# ---------- 設定 ----------
# バックアップ元のデータベース
db_host=xx
db_name=xx
db_user=xx
db_pass=xx

# バックアップ先のディレクトリ・ファイル
bk_file=/xx/bak.sql

# ---------- ファイル名を設定 ----------
# ファイル名を設定
file_temp=$bk_file.sql

# ---------- バックアップ処理 ----------
# バックアップ先のディレクトリに移動
cd $bk_dir
if [ $? != 0 ]; then
echo "Backup directory does not exist."
exit 1
fi


# データベースをダンプ
mysqldump -h$db_host $db_name -u$db_name -p$db_pass --opt > $bk_file
if [ $? != 0 -o ! -e $file_temp ]; then
echo "Cannot dump database."
exit 1
fi

exit 0
------------------------------------

有識者の方、ご教授お願い致します。

現在、hetemlというレンタルサーバでバックアップ用のシェルをcron登録しているのですが、
権限エラーが出てしまいます。何の権限エラーなのか解らないのですが、
どなたかご存知ないでしょうか?

[エラーメッセージ]
/bin/sh: /home/sites/heteml/users/xxx/db_bakkup.sh: Permission denied

[シェル]
#!/bin/sh

# ---------- 設定 ----------
# バックアップ元のデータベース
db_host=xx
db_name=xx
db_user=xx
db_pass=xx

# バックアップ先のディレクトリ・ファイル
bk_file=/xx/bak.sql

# ---------- フ...続きを読む

Aベストアンサー

だれが吐き出しているエラーであるか記載しなとだめですよね。

cronデーモンのログに出ているのか、OSのシステムログなのか?

ちなみにそれぞれ見ましたか?

それによって「権限が無い」の意味合いが違うと思います。

cronであれば、実行者権限の設定を変えること。

http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=Linux+cron+%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%BB%95%E6%96%B9

で設定の仕方がでていますね。設定された実行ユーザーで行うので、その設定されているユーザーに実行権がないと、cronデーモンでは「権限が無い」とでると思われるが・・・・

db_bakkup.sh=[シェル]
の内容であれば、SHでこのシェルファイルの実行で「権限が無い」と言っている。つまり、No1さんが言うとおり

777
755
775

にすればいいことになる。いずにせよ、私ならまず設定をしっかり把握する事からお勧めする。それからでも遅くはないですよ。

だれが吐き出しているエラーであるか記載しなとだめですよね。

cronデーモンのログに出ているのか、OSのシステムログなのか?

ちなみにそれぞれ見ましたか?

それによって「権限が無い」の意味合いが違うと思います。

cronであれば、実行者権限の設定を変えること。

http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=Linux+cron+%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%BB%95%E6%96%B9

で設定の仕方がでていますね。設定された実行ユーザーで行うので、その設定されているユーザーに実行権がないと...続きを読む

Qcronで第一水曜日に実行したい!

cronで第一水曜日に実行したいのですが、
どのように記述していいかわかりません。
(または可能かどうかもわかりません)
月はじめではダメなので、month部分の編集ではたりません。
第一水曜日というふうに設定したいのですが教えてください。
また、cronのみでできない場合は、シェルでどのように制御したらいいのでしょうか?

Aベストアンサー

こんにちは。

cronだけだと#1様のご指摘のとおりOR条件なのでできないと思います。
以下のような方法でいかがでしょう。

例えば第一水曜の午前6時に実行させたいとします。

0 6 1-7 * * sample.shell
sample.shellの中の最初で、`date '+%w'` が3かどうかをチェックする

cshなら
if(`date '+%w'` != 3) then
exit 0
endif

みたいな感じです。

Q"${0%/*}"の内容について

linuxで、シェルスクリプトを作成しているのですが、
あるページを参考にしていたところ、

"${0%/*}" 内容がでてきました。(参考ページは、cd "${0%/*}" と記述されていました。)

確認のために、下記ファイルを作成し、
echo "${0%/*}" でどういった内容になるのか確認してみました。


■シェルスクリプトの内容(ファイル:kakunin.sh)
#!/bin/sh
echo "${0%/*}"

(1)shで、シェルスクリプト実行
# sh kakunin.sh
kakunin.sh ←結果

(2).(ドット)により実行。
# ./kakunin.sh
. ←結果(. ドット)

結果が異なっています。

"${0%/*}"は何を意味しているのでしょうか。
なぜ、(1)と(2)で、実行結果が異なるのでしょうか。

御教示お願いします。

Aベストアンサー

man bash より。

${parameter%word}
${parameter%%word}
パターンに後方一致した部分を取り除く。 word が展開され、パス名展開の場合と同じようなパターンを作ります。 このパターンが parameter を展開した値の末尾の部分とマッチする場合、展開結果は parameter を展開した値から最短一致パターン (``%'' の場合) または最長一致パターン (``%%'' の場合) を取り除いたものになります。 parameter が @ または * である場合、 パターンを削除する操作は全ての位置パラメータに順番に適用され、 展開結果はリストとして得られます。 parameter が @ または * が添字になっている配列変数である場合、 パターンを削除する操作は配列の全ての要素に順番に適用され、 展開結果はリストとして得られます。

「/ があればそれとそれ以降の文字を削除する」 という意味です。
/が複数ある場合は最後の / 以降を削除。

Q*.tar.gzのファイルをダウンロードすると*.tar.tarになってしまいます。

インターネット上のあるサイトから、*.tar.gzという拡張子のファイルをインターネットエクスプローラーからダウンロードしようすると、ファイル保存のダイアログで「*.tar.tar」というファイル名になってしまいます。
ダウンロードの際、しくは、ダウンロードしたあとに、「*.tar.gz」に名前を変えれば、gzipで解凍して、tarコマンドで分解できるのですが、なんで拡張子が変わっちゃうかわかりません。
私の周りのパソコンを見ると、こうなるPCもあれば、ならないPCもあります。
確認したPCは全部WindowsXPで、SP1もSP2もありますが、SP1だから、とか、SP2だからということはありません。
世の中的には、どうもこれは当たり前?の事象のようで、メーカーサイトのダウンロードページなどには、ダウンロードの際の注意書きとして、このような事象があることが書いている場合がありました。
ということはしょうがないのかなとも思うのですが、対処方法とかあるのなら知りたいと思い、質問させていただきました。
ご存知の方、いらっしゃいましたらよろしくお願いいたします。

インターネット上のあるサイトから、*.tar.gzという拡張子のファイルをインターネットエクスプローラーからダウンロードしようすると、ファイル保存のダイアログで「*.tar.tar」というファイル名になってしまいます。
ダウンロードの際、しくは、ダウンロードしたあとに、「*.tar.gz」に名前を変えれば、gzipで解凍して、tarコマンドで分解できるのですが、なんで拡張子が変わっちゃうかわかりません。
私の周りのパソコンを見ると、こうなるPCもあれば、ならないPCもあります。
確認したPCは全部Windows...続きを読む

Aベストアンサー

HTTP プロトコルでは、サーバ側がファイルを提供する時に、Content-Type というヘッダを付けます。通常はこの情報 (MIME) を参照して、クライアント側であるブラウザはそのファイルをどのように開くかを決定します。

(例)
text/html HTML 文書として表示
text/plain テキスト文書として表示
application/ms-word Microsoft Word で開く
application/octet-stream ダウンロードさせる

ただし、サーバ側の Content-Type の設定が不適切だったり、ブラウザがそれを無視するように実装されている場合は予期せぬ動作をすることになります。

例えば、GIF89 という文字列で始まる任意の Content-Type のテキストファイルを Web サイトから取得する場合

- インターネットエクスプローラの動作
GIF ファイルと見なして、「×」印が表示される。

- その他のブラウザの動作
Content-Type に従って内容表示またはダウンロード・ダイアログが表示される。

これは、前者 (インターネットエクスプローラ) が作成者の意図を無視して、勝手に中身を参照してファイルタイプを決定するような実装をしているためです (仕様的にもこの動作は望ましくなかったはず)。

HTTP プロトコルでは、サーバ側がファイルを提供する時に、Content-Type というヘッダを付けます。通常はこの情報 (MIME) を参照して、クライアント側であるブラウザはそのファイルをどのように開くかを決定します。

(例)
text/html HTML 文書として表示
text/plain テキスト文書として表示
application/ms-word Microsoft Word で開く
application/octet-stream ダウンロードさせる

ただし、サーバ側の Content-Type の設定が不適切だったり、ブラウザがそれを無視するように実装されている場合は...続きを読む


人気Q&Aランキング

おすすめ情報