ক্রোন জব এ nginx লোগ্রোটেট ত্রুটি


10

আমি ডিজিটাল ওশান ভিপিএসে উবুন্টু 14.04 এলটিএস এবং এনগিনেক্স চালিয়ে যাচ্ছি এবং মাঝে মাঝে একটি ব্যর্থ ক্রোন জব সম্পর্কে এই ইমেলগুলি গ্রহণ করি:

বিষয়

ক্রোন পরীক্ষা -x / usr / sbin / anacron || (সিডি / এবং& রান-পার্টস - রপ্তানি / ইত্যাদি / ক্রোন.ডেইলি)

ইমেলের মূল অংশটি হ'ল:

:

আমি কীভাবে এটি সমাধান করতে পারি সে সম্পর্কে কোনও চিন্তাভাবনা?

হালনাগাদ:

/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.

দেখে মনে হচ্ছে পোস্টটারেট ক্রিয়া হিসাবে যা নির্দিষ্ট করা হয়েছে তা চলতে পারে না, আমাদের /etc/logrotate.d/nginixস্ক্রিপ্টটি আমাদের দেখান
এক্স তিয়ান

/var/log/nginx/*.log {সাপ্তাহিক অনুপস্থিতি ঘোরান 52 কমপ্রেস বিলম্বকম্প্রেস notifmpty তৈরি করুন 0640 www-ডেটা অ্যাড শেয়ারডস্ক্রিপ্টগুলি প্র্রোটেট হয় [-d /etc/logrotate.d/httpd-prerotate]; তারপরে \ রান-পার্টস /etc/logrotate.d/httpd-prerotate; \ ফাই \ এন্ডসক্রিপ্ট পোস্ট্রোটেট ইনভোক-আরসি.ডি এনজিনেক্স ঘোরান> </ dev / null 2> & 1 টি সমাপ্তি}
ক্রিস

1
অনুরোধ করা হলে আপনার প্রশ্নটি আরও তথ্যের সাথে আপডেট করা স্বাভাবিক। প্রতিটি লাইনের শুরুতে 4 টি স্পেস এটিকে একটি কোড ব্লক করে তোলে।
এক্স টিয়ান

সুতরাং, invoke-rc.d nginx rotateব্যর্থ হচ্ছে, উপযুক্ত ব্যবহারকারী হিসাবে চালানোর চেষ্টা করুন, এবং আমাদের সেই স্ক্রিপ্টটিও দেখান, আপনার মূল প্রশ্নে আউটপুট আটকান। tks।
এক্স টিয়ান

এটি চালানোর চেষ্টা করা হয়েছে, একটি অবৈধ আদেশ ত্রুটি পেয়েছে।
ক্রিস

উত্তর:


10

পোস্ট ঘোরানোর ক্রিয়াটি ভুল বলে মনে হচ্ছে

চেষ্টা

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.

সুতরাং পুনরায় লোডের কাজ করা উচিত এবং লগ ফাইলগুলি পুনরায় খোলার জন্য এনজিএনএক্সে এইচপি সংকেত পাঠানো উচিত।


আপনাকে ধন্যবাদ, এই কমান্ডটি ত্রুটি ছাড়াই চলেছে বলে মনে হচ্ছে। আমি ক্রোন জব আপডেট করব এবং আমরা সেখান থেকে যাব।
ক্রিস

4

অন্য উত্তরে উল্লিখিত হিসাবে, সমস্যাটি হ'ল ক্রিয়াটি সমর্থিত নয় invoke-rc.d nginx rotateবলে উল্লেখ করে একটি ত্রুটি ফেরায় rotate। মজার বিষয় হ'ল service nginx rotateসমস্যা ছাড়াই কাজ করে।

আমার অনুমান যে invoke-rc.dআসল nginx init স্ক্রিপ্ট সমর্থন করে এমন সমস্ত ক্রিয়াটি মোড়ক সমর্থন করে না।

সমস্যাটি সমাধান invoke-rc.d nginx rotateকরা service nginx rotateউচিত পরিবর্তন করা ।


3

আমি নিশ্চিত না যে এটি কারণ initctlডোজ rotateবিকল্পটিকে সমর্থন করে না , এবং যখন এটি সরানো হয়েছিল, তবে আপনি কেবল এটির দ্বারা প্রভাবিত নন, এবং লঞ্চপ্যাডে এর জন্য খোলা বাগ রিপোর্ট রয়েছে।

উপরে এবং নীচের অন্যান্য উত্তরের উল্লেখ হিসাবে, আপনি নিগেক্স লোগ্রোটেট ফাইলটি সম্পাদনা করতে পারেন এবং প্রব্ল্যাম্যাটিক লাইনটি প্রতিস্থাপন করতে পারেন

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

অন্যান্য বিকল্পের সাথে যা কাজ করে,

start-stop-daemon --stop --signal USR1 --quiet --pidfile /run/nginx.pid --name nginx
# or 
service nginx rotate >/dev/null 2>&1
# or
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`

আপনি যে কোন পদ্ধতিটি বেছে নিয়েছেন, দয়া করে আপনি যে কোনও প্যাকেজ দ্বারা পরিচালিত কোনও ফাইল পরিবর্তন করছেন এবং আপনি এটি পরিবর্তন করার পরে তা আর আপডেট করা হবে না এবং আপনাকে ম্যানুয়ালি আলাদাভাবে সমাধান করতে হবে বা একটি দিয়ে এটি ওভাররাইট করতে হবে দয়া করে নতুন একটি (যা প্রস্তুত সব ঠিক আছে)।


আমি নিশ্চিত নই যে "সার্ভিস কমান্ডগুলি কাজ করে না" বাগটি এখানে প্রয়োগ করা হয়েছে, কারণ প্রতিটি বাগে বিভিন্ন সমস্যা রয়েছে addressed (মজার সত্য: 1450770 এর জন্য আমার কাজগুলি স্থির হয়েছে)
থমাস ওয়ার্ড

1

আমার জন্য কাজ:
প্রতিস্থাপিত
postrotate invoke-rc.d nginx rotate >/dev/null 2>&1
সঙ্গে
postrotate service nginx rotate >/dev/null 2>&1


0

প্রতিস্থাপন করুন:

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

সঙ্গে:

[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`

Nginx এর নতুন সংস্করণে মনে হচ্ছে এটি কাজ করে। আমি 1.9 সংস্করণ চালাচ্ছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.