• 締切済み

cronにて動かすと・・・

はじめまして Fedora Core3 + Postgresqlの環境で開発をしています。 自動的に、バックアップをとる仕組みを作っているのですが バックアップをおこなう、shファイルに psql -f /www/sql/abc.dat abc として、一括でデータベースを復元してます 手動で、shファイルを動かすと、ちゃんと復元されるのですが cronで、このshファイルを時間設定し動かすと psql -f /www/sql/abc.dat abc が、まったく動いてなく、復元できません すみませんが どなたか、教えてください よろしくお願いします。

みんなの回答

  • hira6bg
  • ベストアンサー率61% (8/13)
回答No.1

1)Cron指定しているユーザではパスが通っていないということはないでしょうか? 2)psqlコマンドをフルパスで書くとどうですか? 3)abcをフルパスで指定するとどうですか? ==> abcだとpsqlコマンドと同じ場所であるという解釈になりますが平気ですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cronでAmazon RDSのバックアップ

    以下のようなスクリプトをcron起動で実行し、Amazon RDS上のMySQLデータベースのバックアップを取ろうとしています。 ---------------------------------------- #!/bin/sh MYSQLDUMP=/usr/local/bin/mysqldump BACKUPDIR=/home/backup DATE=`/bin/date +%F` $MYSQLDUMP -u xxx --password="yyy" --host=mysqlsdb.zzz.rds.amazonaws.com --ssl-ca=mysql-ssl-ca-cert.pem xxx > $BACKUPDIR/xxx_$DATE.sql gzip $BACKUPDIR/*_$DATE.sql find $BACKUPDIR -mtime +7 -exec rm -f {} \; ---------------------------------------- コマンドでスクリプトを実行すると正常に実行されるのですが、cron起動で実行されると、dumpファイルは作成されるのですが、中身が空になります。 cronだと動かないというケースはよく見るのですが、今回の場合、スクリプトが実行されているようです。 何がいけないのでしょうか?

  • 、cronのユーザは postgresでないとpg_dumpallが実行できません。

    CronでPostgreSQLのデータベースをバックアップするにあたり pg_dumpallコマンドで実行させるのですが、cronのユーザは postgresでないと実行できません。 コマンドユーザーをrootにして、pg_dumpallを実行させたいのですが、何か良い方法はありますか? cronにはpg_dumpall直接書き、またはスクリプトでも構いません。

  • cronでシェルスクリプトが実行されない

    Linuxでファイルのバックアップを取るため backup.shというシェルスクリプトを組み、コマンドから実行する場合問題ないことを 確認しています。ところがcronに設定し自動実行すると内容が実行されておりません。 /var/log/cronを確認したところ時間通り実行されているというログは残っています。 /var/spool/cron/にrootというファイルを作成し 00 23 * * * /BACKUP/backup.shを実行させたいのです。 なぜ、手動の場合は問題がないのにcronで設定すると問題が生じるのでしょう? もし、お分かりの方は教えてください。 OSはRed Hat Linux release 8.0 (Psyche)です。

  • cronでバックアップ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 ------------------------------------ 有識者の方、ご教授お願い致します。

  • INSERT 0 1が大量に表示されて遅いです。

    postgresql8.3.9のWindows版を使っています。 psql データベース < bak.sql で1GBくらいあるSQLファイルをリストアしたのですが、 INSERT 0 1が大量に表示されて遅いです。 何も表示させない or 高速版っていうものはあるのでしょうか?

  • Linux上のpostgreSQLデータをWindowsでみたい

    サーバA(OS:Linux Fedora Core 4、データベース:PostgreSQL 8.0 で運用しているシステムがあり、毎日そのデータを下記のdumpコマンドで PostgreSQLの全データをバックアップしています pg_dumpall > postgres.out  サーバAを触るのは怖いので、別のマシンB(Windows-Xp)に postgresql-8.2.6をインストールしました。 このバージョンは、postgresqlとともに、pgAdmin3というGUIの管理 ツールもついていると聞きここに、サーバAからバックアップされている postgres.outをrestoreして pgAdmin3でデータベース・テーブル等をみようとしています (postgres.out)を使ってのリストアの仕方は (1)(postgres.out)をpostgresqlの/binディレクトリの中に入れる (2)psqlのメニューから次のコマンドを打つ psql -d manmg -f postgres.out   (3)pgAdmin3を立ち上げるとサーバAのDBは追加されているようなのですが  テーブルは(0)となって見えません マシンBの方のPostgreSQLについてはインストールしたままでサーバA のpostgresqlの設定等は何もしていません 何か設定する所はあるのでしょうか 上記手順でlinuxから吐出されたバックアップデータをWindowマシンに リストアする方法は間違っていないのでしょうか よろしくお願いします。

  • cronでatコマンドがうまく動かない

    こんにちは。RedHat7.0のcronでatコマンドを動かそうとしています。 *********************************************** 00 14 * * * root at -f test.sh 14:30 2001-8-8 *********************************************** こんな感じで書いてあります。 このtest.shも、at -f test.sh 14:30 2001-8-8も、 単体では正常に動いてることを確認しています。 また、cron自体も正常に機能していて、 時間になるとatqでジョブが溜まっているのも確認できます。 var/log/cronでatコマンドが正常にキックされているのも 確認済みです。 でも、test.shの処理が実行できていないんです~。 単体では実行できているのに・・。 ちなみにtest.shの中身は ************************** #!/bin/bash date >aaa.txt ************************** という単純なものです。 crontabに書いた時だけファイルが出来ないのはどういう訳なのか 原因に心当たりのある方、アドバイスいただけないでしょうか。 宜しくお願いいたします。

  • (Linux、データベース初心者)スクリプトを実行するとPermiss

    (Linux、データベース初心者)スクリプトを実行するとPermission deniedが発生します。 Postgresql psqlに関して よろしくお願いします。 UbuntuサーバにインストールしたPostgresqlに対し、スクリプトを実行してcsvファイルをインポートしようと考えています。 その際にPermission deniedが発生しテーブルにデータが入りません。 以下にスクリプトファイルとエラーメッセージを掲載します。 <test.sh> #!/bin/bash #接続文字列 export PGHOST="ホスト名” export PGPORT="ポート番号" export PGDATABASE="データベース名" export PGUSER="ユーザー名" export PGPASSWORD="パスワード" PSQL='COPY bat_test FROM ' '''/test/test.csv''' ' with DELIMITER ' ''',''' echo "$PSQL" | psql echo "commit" | psql <以上、test.sh> <エラーメッセージ> test.sh:/test/test.csv:Permission denide <以上、エラーメッセージ> インポートしたいファイルの権限等は確認しましたがわかりませんでした。 何が悪いのかご指摘いただければ助かります。 どうか、よろしくお願いします。

  • psqlでエラーログをとりたい

    こんにちは、honiyonです。  WindowsXP + Cygwin + PostgreSQL  という環境で使用しています。  psqlは   http://www.interwiz.koganei.tokyo.jp/software/PostgreSQL/windows.html  にあるWindows版を使用しています。  この環境で、ファイルに保存してあるSQLを一括処理した場合に発生するエラーをしる為に、実行結果をファイルに保存したいと思い、  psql -h localhost [DB名] < sqllist.txt > log.txt  のように実行してみました。  確かにログは作成されましたが、正常時のみで肝心のエラーメッセージが省かれて保存されます。  そこで、  psql -f sqllist.txt -o log.txt -h localhost [DB名]  としましたが、変化ありませんでした。  もしエラーメッセージを保存する方法がありましたら、是非ご教授ください(..  宜しくお願いします(..

  • 10gのバックアップ方法とリストア方法 一括・個別

    oracle10gで、データベースのバックアップを行いたいのです。 初めてで心配なのでお知恵を貸してください。 1 丸ごとバックアップ PostgreSQLでいう pg_dumpのようなもの。 2 テーブル毎(順序も含めて)にSQLで吐いたもの。   この場合、表やビュー、順序など全てをsqlplusで定義やデータを見ることが可能でしょうか?また、sql形式でファイル化する方法などもです。 要は、他のマシンにあるオラクルDBのデータを全て別のマシンに移したいのですが、一括方法と、表や順序など個別で細分化して移すファイルが巨大にならないようにできる方法など知りたいです。