/Etc/cron.hourly এ স্ক্রিপ্ট স্থাপন করা কেন কাজ করছে না?


16

আমি একটি এক্সিকিউটেবল স্ক্রিপ্ট রেখেছি /etc/cron.hourly, কিন্তু script স্ক্রিপ্টটি প্রতি ঘন্টায় চালিত হয় না আসলে এটি কখনই চালায় না।

এখানে আমি তৈরি স্ক্রিপ্ট (ঘন্টা-শব্দ):

#! / বিন / ব্যাশ
এমপ্লেয়ার Music / সঙ্গীত / sfx_msg -light.wv &> / দেব / নাল এবং
spd-say -r -50 -p 50 -t male3 "এখন সময় $ (তারিখ +"% l% p ")"
"এটি এটি:" "$ (তারিখ +"% l% p ") এখনই অবহিত করুন-" -i ~ / চিত্র / "প্রথম tee.png" - 5000

আমার ক্রোনটবটি হ'ল:

DISPLAY=":0.0"
XAUTHORITY="/home/naruto/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"

0 * * * * /home/naruto/Hour-sound.sh

যদিও mplayerএবং spd-sayকমান্ড সঠিকভাবে চালানো হয়, notify-sendনয়। আমি একটি ফাইলে ত্রুটি পুনর্নির্দেশ চেষ্টা করেছি:

0 * * * * /home/naruto/Hour-sound.sh 2>/tmp/error

কিন্তু এটি কোনও আউটপুট দেখায় নি। আমি কি ভুল করছি?


শুধু নিশ্চিত করেই, আপনি কি স্ক্রিপ্টটি কার্যকর করতে পেরেছেন? মূলের মালিকানাধীন? আপনি যখন টার্মিনাল থেকে স্ক্রিপ্টটি চালাবেন বা একটি সাধারণ স্ক্রিপ্ট সেখানে রাখবেন তখন কী হয়? নেই /etc/crontabনেই run-partsঘনঘন চালানোর জন্য লাইন cronডিরেক্টরি থেকে কাজ?
হিমাইল

এক্সিকিউটেবল: হ্যাঁ, স্ক্রিপ্টটি চালানো /etc/cron.hourly ডিরেক্টরি থেকে কোনও ভুল হয় না, কীভাবে এটি পরীক্ষা করতে হয় তা জানেন না এটি কি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে? @ হেইমাইল
ব্ল্যাক ব্লক

1
/etc/crontabফাইলটির কি লাইন আছে 17 * * * * root cd / && run-parts --report /etc/cron.hourly?
হিমাইল


1
পাঠ্যের স্ক্রিনশট পোস্ট করবেন না দয়া করে । বিশেষত যখন সেই পাঠ্যটি একটি স্বচ্ছ টার্মিনাল উইন্ডোতে প্রদর্শিত হয় এবং এতে বিভ্রান্ত রং অন্তর্ভুক্ত থাকে।
টেরডন

উত্তর:


24

আপনি সম্ভবত আপনার প্রশ্নের মন্তব্যে দেখেছেন, ক্রোনজবসগুলি /etc/cron.hourly(এবং অন্যান্য, অনুরূপ ডিরেক্টরিগুলি) দ্বারা সম্পাদিত হয় run-partsrun-partsফাইলের নাম সম্পর্কে কিছুটা পিক। ডিফল্টরূপে এটি ফাইলগুলি সম্পাদন করে না যার ফাইলের নামগুলিতে ব্যতীত অন্য কিছু রয়েছে (এএসসিআইআই এর সমস্ত)

  • বড় হাতের অক্ষর
  • ছোট হাতের অক্ষর
  • ডিজিটের
  • আন্ডারস্কোর
  • ড্যাশস ("বিয়োগ চিহ্ন")

সুতরাং আপনার স্ক্রিপ্টে উদাহরণস্বরূপ "myscript.sh" এর একটি ফাইলের নাম থাকলে এটি ঠিক উপেক্ষা করা হবে, কারণ run-partsবিন্দুটি পছন্দ করে না।


1- আমার ফাইলগুলি এখানে: Mediafire.com/view/rg8r85xb7qw26zs/cron.hourly_017.png 2- আপনি /etc/cron.hourly কোনও স্ক্রিপ্ট চেষ্টা করেছেন এবং আপনার সাথে কাজ করেছেন?
ব্ল্যাক ব্লক

2
আমি কেবল একটি লিট স্ক্রিপ্ট পরীক্ষা করেছি যা / টিএমপি-তে একটি ফাইলটিতে "হ্যালো" লিখেছিল এবং এটি কোনও সমস্যা ছাড়াই কাজ করেছে। কেবলমাত্র, আপনি সচেতন যে স্ক্রিপ্টগুলি /etc/cron.hourlyপ্রয়োজনীয়ভাবে "ঘন্টা" চালানো হয় না? আপনার ক্রোনজবুকের যদি /etc/crontab17 মিনিটের স্থানে থাকে তবে স্ক্রিপ্টগুলি 00:17, 01:17 এবং আরও কিছুক্ষণে কার্যকর করা হবে। এবং আবার ঠিক ক্ষেত্রে, স্ক্রিপ্টের অনুমতিগুলি ব্যবহারকারীকে তাদের কার্যকর করতে দেয়?
হেনিং কোকারবেকে

ইয়াহ কিন্তু আমার স্ক্রিপ্টটি কখনই চলবে না। এবং অনুমতি সম্পর্কে এখানে দেখুন: mediafire.com/view/psnb4bflawdly/…
ব্ল্যাক ব্লক

হতে পারে এটি আসলে অনুমতি সংক্রান্ত সমস্যা। আমি জানি যে আরও সাধারণের স্ক্রিপ্টগুলিতে /etc/cron.d/অবশ্যই "গ্রুপ" বা "অন্য" এর জন্য লেখার অনুমতি বা সম্পাদন করা উচিত নয়। "মালিক" এর সম্পাদনের অনুমতি প্রয়োজন, "গোষ্ঠী" এবং "অন্যদের" অবশ্যই পড়ার অনুমতি থাকতে হবে। /etc/cron.hourlyযদিও এটিও প্রযোজ্য , যদিও আমি এটি পরীক্ষা করি নি।
হেনিং কোকারবেক

ঠিক আছে তবে আমি আমার ফাইল মিডিয়াফায়ার / ভিউ / এস 2lq63u7z54ohbo/… এর অনুমতি পরিবর্তন করেছি যা এই গোষ্ঠীটি কেবলমাত্র এবং অন্যান্যদের পড়তে বাধ্য করে, তাই এটি কি কোনও সমস্যা করতে চলেছে?
ব্লক ব্লক

5

একটি সমস্যা হ'ল আপনি notify-sendক্রোন থেকে একটি গ্রাফিকাল অ্যাপ্লিকেশন ( ) চালানোর চেষ্টা করছেন । এটি একটি সামান্য টুইট হয়। আপনার ক্রন্টবায় সেট XAUTHORITYএবং DISPLAYভেরিয়েবলগুলি তৈরি করা দরকার যাতে এটি আপনার চলমান এক্স সেশনের সাথে সংযোগ স্থাপন করতে পারে এবং আপনাকে সেট XDG_RUNTIME_DIRকরতে হবে যাতে এটি আপনার পালসওডিও সেশনে সংযোগ করতে পারে। দুর্ভাগ্যক্রমে, এগুলি ক্রন্টাব নিজেই সেট করা দরকার, যাতে আপনি ব্যবহার করতে পারবেন না /etc/cron.hourly। পরিবর্তে, চালান crontab -eএবং এই লাইন যুক্ত করুন:

DISPLAY=":0.0"
XAUTHORITY="/home/YOURUSERNAME/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"

0 * * * * /path/to/script.sh 

XDG_RUNTIME_DIRআপনি যখন echoটার্মিনাল থেকে ফিরে আসবেন তখন তার মান পরিবর্তন করুন । আমার সিস্টেমে এটি হ'ল:

$ echo $XDG_RUNTIME_DIR
/run/user/1001

এটি সম্ভবত আপনার ক্ষেত্রে একই হবে তবে প্রথমে পরীক্ষা করুন। এখন, আপনার স্ক্রিপ্ট প্রতি ঘন্টা চলবে এবং প্রত্যাশার মতো কাজ করা উচিত।


আপনি কি মিডিয়াফায়ার / ভিউ / বিউটি / কিউজপিভিউ8 বি 41 এন 3 হ্যু_ই বলতে চাইছেন ? এটি আমার পক্ষে কাজ করে না।
ব্লক ব্লক

আমি মনে করি যদি সমস্যাটি বিজ্ঞপ্তি-প্রেরণে থাকত তবে অন্য কমান্ডটি কেন চালিত হয়নি (এমপ্লেয়ারের মতো)?
ব্লক ব্লক

@ ব্ল্যাকব্লক একাধিক সমস্যা আছে। ঝ) notify-sendপ্রয়োজন XAUTHORITYএবং DISPLAYভেরিয়েবল নির্ধারণ করা প্রয়োজন এবং ২) mplayerপ্রয়োজন XDG_RUNTIME_DIRসেট যাবে। আপনি আমার পরামর্শ চেষ্টা করে? এটি উভয় সমস্যার সমাধান করা উচিত। run-partsঅন্যান্য উত্তরে বর্ণিত হিসাবে আপনার সম্ভবত নামকরণের সমস্যা ছিল ।
টেরডন

তাহলে কেন এটি আমার পক্ষে কাজ করে না? আমি পাগল হয়ে যাব! আপনার উত্তরে প্রথম মন্তব্যে আমার চিত্রটি দেখুন
ব্লক ব্লক

নিবন্ধন করুন আপনি সম্পাদনা করছেন /etc/crontab, এটি করবেন না। আপনি এটিকে আপনার ব্যবহারকারী হিসাবে চালিত করতে চান, মূল হিসাবে নয় এবং সেই ফাইলটির যাইহোক আলাদা ফর্ম্যাট রয়েছে। আমার উত্তরে আমি যা বলেছি কেবল তা-ই করুন, চালান crontab -eএবং সেখানে লাইন যুক্ত করুন।
টেরডন

3

ফোল্ডারে শেষ হওয়া একটি স্ক্রিপ্ট .shকার্যকর করা হয় না /etc/cron.hourly:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=308911
রান-পার্স দ্বারা পরিচালিত ডিরেক্টরিগুলির ভিতরে লিঙ্ক বা বাইনারি (যেমন /etc/cron.daily) চলবে না যদি কোনও পিরিয়ডের অংশ হয় তাদের নাম.

স্ক্রিপ্টটির নতুন নাম দিন

mv /etc/cron.hourly/Hour-sound.sh /etc/cron.hourly/Hour-sound

অথবা স্ক্রিপ্ট-কলটি .োকান

/etc/crontab

যা .shশেষের অনুমতি দেয়


1

এক্সটেনশন (abc.sh) সহ স্ক্রিপ্ট ব্যবহার করবেন না এবং আপনার প্রয়োজনীয় স্থানটি যুক্ত করুন। (Cron.hours)।

আপনার কোড স্টাফিকে অ্যাবসি ফাইল এ যুক্ত করুন এবং সংরক্ষণ করুন (আপনার প্রয়োজনের জন্য) (এটি বাশ কমান্ড হওয়া উচিত)

ব্যবহার

sudo chmod +x abc

এক্সিকিউটেবল ফাইল করতে কমান্ড।

edit etc/cronrtab file

আপনার মিনিট থেকে কয়েক ঘন্টা লাইনে পূর্বনির্ধারিত কয়েকটি লাইন রয়েছে এবং এটি সংরক্ষণ করুন।

তাহলে এটি সঠিকভাবে চলবে।

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