- PR -

cronで自動バックアップがうまくいきません。

投稿者投稿内容
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-03-15 12:50
引用:

streamerさんの書き込み (2005-03-13 23:26) より:
crontab -l  とすると no crontab for root とでます。


これは(Linux なら)出てもおかしくないと思うのですが。
/etc/crontab で設定しているんですよね。

引用:

streamerさんの書き込み (2005-03-14 21:27) より:
できれば、crontab編集とcronコマンドの両方でできるようにしたいとの希望を持っています。


こちらは無理です。
(「crontab編集 = /etc/crontab編集」、「cronコマンド = crontabコマンド」、「両方でできる = 両方で同じものを編集できる」 であるのなら)
_________________
オフ企画進行中(開催地:名古屋)。ご意見などお待ちしています♪

# 日本語修正

[ メッセージ編集済み 編集者: はゆる 編集日時 2005-03-15 13:29 ]
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-03-15 13:12
こんにちは。ちょっと話がそれますが。
crontab -lで表示されるのは/var/spool/cronの下のやつだけだと思ったのですが。
(/var/spool/cron/crontabsの下かも。crontab -eで編集したもの)

とりあえず手元のDebianで試した限りではそんな感じでした。
/etc/crontabの中身は載ってきませんでした.
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-03-15 13:23
引用:

これは(Linux なら)出てもおかしくないと思うのですが。
/etc/crontab で設定しているんですよね。


勝手に補足すると、crontab -lで出力されるのは、crontab -eで作成した
cronのジョブである、/var/spool/cron内で定義されたジョブであり、
/etc/crontabや/etc/cron.* で定義されたジョブは出力されません。

あと、cronに限らず、/etc/profileなんかもそうなんですが、
FedoraCoreなら/etcに〜.dってディレクトリがありますよね。
そこに個別の設定ファイルは置いてください。
cronに関しては、/etc/crontabに追記するのと同じ内容を記述したファイルを、
/etc/cron.dに追加すれば、ちゃんと読み込んでくれます。
また、/etc/cron.dailyや/etc/cron.weeklyなどのディレクトリにスクリプトを置けば、
cronが日ごとや週ごとに実行してくれます。
これらとcrontabを使ったジョブ追加、があれば、/etc/crontabをいじる必要が無いし、
/etc/crontabをいじることが非推奨である理由がわかるかと。

本題については、とりあえずはそのスクリプトを別フォルダにおいてcronに登録してみましょう。
もしくはそのスクリプトを/etc/cron.hourlyにおいて(1時間起きに実行される)
実行されるかどうかを確認してください。
streamer
会議室デビュー日: 2005/03/13
投稿数: 12
投稿日時: 2005-03-15 23:36
他の方法でも試してみます。crontabをデフォルトに戻し、
まず、crontab -e で実行してみる。
をしてみました。これはすぐにviで入力するようになりました。(間違っていないですよね)viでそのまま、
2 * * * * /home/sg/bin/backup.sh
でwq!(上書き保存)
ですが、下記のようにroot用にcrontabがない?とでました。
[root@ns bin]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
ユーザ権限などが間違っているのでしょうか。(コマンド実行ユーザはrootです)
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-03-16 11:02
こんにちは。

引用:

streamerさんの書き込み (2005-03-15 23:36) より:

ですが、下記のようにroot用にcrontabがない?とでました。
[root@ns bin]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab




これはそのユーザで初めてcronを編集したために出るものだったと思います。
rootのcrontabが無かったから新しく作りましたよ、ってことです。
この状態で再度crontab -eすると、先ほど書き込んだ内容が出てくると思います。
またはcrontab -lで登録されているかが見れるはずです。

で、これで試した結果はどうだったのでしょうか?
ゆきち
会議室デビュー日: 2004/07/05
投稿数: 10
投稿日時: 2005-03-16 19:37
Fedora Core 3なら、kcronというcronの補助ソフトがあります。
それを使ってください。

むやみにrootになって作業したり、テキストエディタでファイルをいじるのは止したほうが良いです。それから、ログインは一般ユーザーで行ってください。rootで入る癖がついて、システムがどうなってもしりません。

#業務のシステムではないんだったら、人に聞かないでシステムを壊すまで遊んでもいいんじゃないかとおもうんですが。
streamer
会議室デビュー日: 2005/03/13
投稿数: 12
投稿日時: 2005-03-16 22:03
[試行1]
crontabをデフォルトに戻し、
まず、crontab -e で実行してみる。
で、うまくいきました。 
crontab -lとすると 2 * * * * /home/sg/bin/backup.sh と出力されるます。実際に○○時2分にバックアップファイルが作成されています。

[試行2]
今度は、crontab編集+cron.hourlyでうまくいくか試してみたいと思います。

harehiro
会議室デビュー日: 2005/08/26
投稿数: 1
投稿日時: 2005-08-26 13:05
私もかなりcrontabでは迷いましたが、
/home/sg/bin/backup.shをcronで直接実行するのではなく、
backup_exe.shなどのスクリプトをつくって、そのなかで、

cd /home/sg/bin/
./backup.sh

として、これをcrontabで実行してみたらどうでしょうか。

perlをつかったスクリプトでファイルをカレントディレクトリーにつくるタイプの
場合、こうしないとうまくいきませんでした。

スキルアップ/キャリアアップ(JOB@IT)