Crontab এর মাধ্যমে শেল স্ক্রিপ্ট কীভাবে কার্যকর করা যায়?


22

আমার কাছে এমন notify.shস্ক্রিপ্ট রয়েছে যা দেখে মনে হচ্ছে:

notify-send "hi welcome"

আমার দুপুরের জন্য ক্রন্টব নোটিফিকেশন:

0 14 * * * home/hacks/notify.sh

তবে, এটি কাজ করে না। সমস্যাটা কি?

উত্তর:


39

আপনার স্ক্রিপ্ট একটি # অনুপস্থিত! শুরুতে লাইন, যা স্ক্রিপ্টের জন্য কোন কমান্ড ইন্টারপ্রেটার ব্যবহার করতে হবে তা বলতে কার্নেল দ্বারা ব্যাখ্যা করা যাদুটি।

এটি দেখতে এইরকম করুন:

#!/bin/sh
notify-send "hi welcome"

এবং স্ক্রিপ্টটি সম্পাদনযোগ্য কিনা তা নিশ্চিত করুন:

ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh

এছাড়াও, যেহেতু আপনি এটি কেবলমাত্র একবারে ঘটতে বলছেন, তাই ক্রন্টাবের টাইমজোনটি কি আপনার নিজস্ব সময় অঞ্চল হিসাবে একই? আপনি হয়ত এটি ঘটতে পারে 2 pm GMT এ।


+1 এই উত্তরটি দুর্দান্ত - বিশেষত স্ক্রিপ্টটির বিষয়টি নির্বাহযোগ্য হতে হবে তা লক্ষ্য করে! ধন্যবাদ!
FXQuantTrader

খুব সূক্ষ্ম ব্যাখ্যা। আমার
উক্তি

18

ক্রন্টব রানিং করা কেবল সহজ। এখানে আমি ক্রোনটব কাজ চালানোর উপায় বলতে যাচ্ছি। এটি ক্রোনটবে আটকে থাকা যে কেউ তার পক্ষে দরকারী useful

*/1 * * * * cd /home/hacks && sh notify.sh

স্ক্রিপ্টটি কার্যকর করার জন্য, আমাদের এটি করতে হবে:

chmod +x home/hacks/notify.sh

এখানে আমি প্রতি এক মিনিটের জন্য এই স্ক্রিপ্টটি চালাচ্ছি ... নীচের স্ক্রিপ্টটি করে আপনি এটি লগ ফাইলটিতে এটি কাজ করছে কিনা তা অনুসন্ধান করতে এটি লিখতে পারেন

লগ লিখুন

*/1 * * * * cd /home/hacks && sh notify.sh>>test.log

মেইল পাঠাও

*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com

2
"* / 1 * * * * sh / home/hacks/notify.sh" এছাড়াও কাজ করবে না?
ব্যবহারকারী 1179459

5

4 অনুমান:

  • ক্রোন ডেমন চলছে না (একটি ps axfww | grep cronপরীক্ষা করে দেখুন)

  • বিজ্ঞপ্তি-প্রেরণ একটি টার্মিনাল বা এক্স সেশনে আউটপুট প্রেরণের চেষ্টা করছে - তবে এটি cronপরিবেশের মধ্যে থেকেই চালিত হয়েছে এবং এটি " কার সাথে কথা বলবেন", তাই কথা বলতে জানেন না।

  • আপনার স্ক্রিপ্ট কার্যকর করা যায় না

  • home/নিম্নলিখিতরূপে crontab পরিবর্তন লিপিতে পথ ব্যবহারকারী স্ক্রিপ্ট হিসাবে মৃত্যুদন্ড কার্যকর করা আপেক্ষিক হয়। পুরো পথটি ব্যবহার করার চেষ্টা করুন


1

যোগ export DISPLAY=:0আপনার স্ক্রিপ্টের মধ্যে অবহিত পাঠানোর লাইনের উপরে। এটি লরনেজগের দ্বিতীয় পয়েন্টটিকে সম্বোধন করে।


0

আপনাকে নিম্নলিখিত কমান্ড দ্বারা ক্রন্টব্যাট খুলতে হবে:

crontab -u username -e (to edit) -l(to list) -r(to remove) 10(minutes) 8-15(hours) *(Day of month) *(month) 1,3,5(days of week) /path/to/script/script_name.sh

এটি প্রতি সোমবার, বুধবার এবং শুক্রবার সকাল 10 মিনিটের সময় সকাল 8 টা থেকে 3 মিনিটে আপনার স্ক্রিপ্টটি চালাবে।


0

প্রথমত, আমাদের কমান্ড দিয়ে ক্রোনট্যাব সম্পাদনা করা উচিত crontab -eএবং এর ভিতরে এটি Crontabএক্সিকিউটেবল স্ক্রিপ্টের পথ এবং আপনার ক্ষেত্রে এর মতো যুক্ত করা উচিত * 14 * * * home/hacks/notify.sh >/dev/null 2>&1

ক্রোন পরিষেবা শুরু / বন্ধ / পুনরায় চালু করুন

  • /etc/init.d/crond start /stop / restart
  • service crond start /stop /restart
  • systemctl stop crond.service

systemctl স্টপ crond.service


-2

বেশ সহজ, ক্রন্টব ফাইলের নীচে নিম্নলিখিত লাইনটি যুক্ত করুন: sudo nano /etc/crontab

@reboot root cd /home/pi/node-sonos-http-api && npm start &


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