cronジョブでnginx logrotateエラー

cronジョブでnginx logrotateエラー

私はDigital Ocean VPSでUbuntu 14.04 LTSとnginxを実行しています。

トピック

cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

電子メールの本文は次のとおりです。

/etc/cron.daily/logrotate: エラー: '/var/log/nginx/*.log' の共有 postrotate スクリプトの実行中にエラーが発生しました。実行部分:/etc/cron.daily/logrotateが戻りコード1で終了しました。

この問題を解決する方法についてのアイデアはありますか?

修正する:

/var/log/nginx/*.log {
  weekly
  missingok 
  rotate 52 
  compress 
  delaycompress
  notifempty 
  create 0640 www-data adm
  sharedscripts
  prerotate
      if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
          run-parts /etc/logrotate.d/httpd-prerotate; \
      fi
  endscript 
  postrotate 
      invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript 
}

修正する:

$ sudo invoke-rc.d nginx rotate
initctl: invalid command: rotate
Try `initctl --help' for more information.

ベストアンサー1

回転後の作業が間違っているようです。

努力する

invoke-rc.d nginx reload >/dev/null 2>&1

コマンドを表示すると、そのコマンドがnginx実行するアクションが表示されます。受信したメッセージにも確認してもらいました。initctl --help

xtian@fujiu1404:~/tmp$ initctl help
Job commands:
  start                       Start job.
  stop                        Stop job.
  restart                     Restart job.
  reload                      Send HUP signal to job.
  status                      Query status of job.
  list                        List known jobs.

したがって、リロードが機能し、HUP信号をnginxに送信してログファイルを強制的に再開する必要があります。

おすすめ記事