
こんにちわ。
Linuxでcronを設定しPHPからexecで「pg_dump」を実行しようとしています。
エラーになり実行ができません。
設定は
/var/spool/cron ディレクトリに
『crontab -e -u postgres』でコマンドを実行し
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=''
HOME=/
08 19 * * * postgres /usr/bin/php /home/var/b_dump.php
とcrontabに記載しています。
コマンドの実行はrootユーザで
権限は777
にしています。
メールを届くようにしているのですが、届くメールは
『postgres does not know where to find the server configuration file.
You must specify the --config-file or -D invocation option or set the PGDATA environment variable.』
と届きます。
googleで検索したのですが、解決方法がわかりません…。
読みにくい文章で申し訳ないのですが、解決方法のご教授を
お願いします。
No.3ベストアンサー
- 回答日時:
#1です。
なるほど。postgresというのはコマンドのつもりじゃなくて、実行ユーザ名指定のつもりだったんですね。
コマンドとしてはそれで良いでしょう。
>pg_dump: [archiver (db)] connection to database "postgres" failed: fe_sendauth: no password supplied
パスワードの指定が必要だが指定されていないというメッセージです。
>PHPのカテゴリに質問をした方がいいのかもしれませんが、
PHPは関係ありません。PostgreSQLのカテゴリで質問してください。
pg_dumpをちょっと調べてみましたが、-U でユーザ指定している例はみつからないですね。
何度も回答ありがとうございます。
もう少し自分で調べてみて、解決しなければ、
PostgreSQLのカテゴリで質問させて頂きます。
ありがとうございました。
No.2
- 回答日時:
おそらく /etc/crontab を見て設定されたのでしょうが、/etc/crontab と 各ユーザーごとのcrontabは書式が違っています。
以下、man 5 crontabからの引用
>各行には 5 つの時刻・日付フィールドがあり、
>(システムの crontab ファイルの場合) ユーザー名が続き
>さらにコマンドが続く。
つまり、システムのcrontabの場合のみ、ユーザー指定フィールドが存在します。
従って、amountainblastさんの設定の場合、ユーザーを指定しているつもりのところが、postgresコマンドを実行していることになりますね。
回答ありがとうごじあます。
ご指摘の通り ユーザー指定フィールドを をcrontabからとってみたら、違うエラーが届くようになりました。
現在は
50 09 * * * /usr/bin/php /home/var/b_dump.php
と設定しました。
Password:
pg_dump: [archiver (db)] connection to database "postgres" failed: fe_sendauth: no password supplied
とエラーが来るようになったのですが、このエラーだとpg_dumpのオプションの渡し方が悪いのでしょうか?
PHPソースは
exec("pg_dump -U postgres -Wtest01 -t postgres > {$b_data_txt}");
と記述しています。
PHPのカテゴリに質問をした方がいいのかもしれませんが、
もう少しご教授をお願いします。
No.1
- 回答日時:
『postgres does not know where to find the server configuration file.
You must specify the --config-file or -D invocation option or set the PGDATA environment variable.』
訳します。
Postgresは、サーバー設定ファイルがどこにあるか見つけることが出来ません。
あなたは、起動オプションの --config-file か -D で設定ファイルを指定するか、PGDATA という環境変数で設定ファイルを指定する必要があります。
それ以前の問題として、postgresコマンドの引数に /usr/bin/php を指定しているのは間違っていると思います。意味不明のコマンドでは?
phpを実行するんですよね?
回答ありがとうごじあます。
このcronではphpを実行しようとしています。
phpのexecでpg_dumpを実行しようとしています。
ご指摘の通り /usr/bin/php をcrontabからとってみたのですが、
phpが実行されていません。
現在は
50 09 * * * /usr/bin/php /home/var/b_dump.php
と設定しました。
Password:
pg_dump: [archiver (db)] connection to database "postgres" failed: fe_sendauth: no password supplied
とエラーが来るようになったのですが、このエラーだとpg_dumpのオプションの渡し方が悪いのでしょうか?
PHPソースは
exec("pg_dump -U postgres -Wtest01 -t postgres > {$b_data_txt}");
と記述しています。
PHPのカテゴリに質問をした方がいいのかもしれませんが、
もう少しご教授をお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- Ruby Ruby / passenger のインストールについて 1 2023/01/30 18:31
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IPアドレスだとPingが通るのに...
-
空きIPアドレスを探す方法
-
-bash: ftp: コマンドが見つか...
-
他のログイン中のttyをリモート...
-
cshにてファイル名補完の設定の...
-
隠しレジストリについて
-
ユーザーごとのログイン時間制限
-
Linuxのmailコマンド実行時の挙...
-
Linuxのswap領域の表示について
-
mailコマンドでfrom(差出人)を...
-
traceroute の H! について
-
コマンドプロンプトから別マシ...
-
VMwareの時刻同期の方法がわか...
-
DOS/VでRS232Cの設定
-
ディスクキャッシュの設定
-
「Ctrl + C」が使用できない
-
TERATERMを使ってのSSH接続がで...
-
viエディタが起動しない
-
AIXのrshにて、コマンドが実行...
-
no cdp enable コマンドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
空きIPアドレスを探す方法
-
IPアドレスだとPingが通るのに...
-
コマンドプロンプトから別マシ...
-
-bash: ftp: コマンドが見つか...
-
expectを使用しない自動PW入力方法
-
他のログイン中のttyをリモート...
-
端末(ターミナル)から端末を...
-
CentOSのrebootがきかない
-
TERATERMを使ってのSSH接続がで...
-
cshにてファイル名補完の設定の...
-
隠しレジストリについて
-
viエディタが起動しない
-
「Ctrl + C」が使用できない
-
ネームサーバからの応答なし。...
-
CentOS7 が起動できない
-
AIXのrshにて、コマンドが実行...
-
no valid signature found
-
リモートコンピュータの時刻を...
-
telnetコマンドを使うと文字化...
-
ルータのホスト名を調べる
おすすめ情報