সুবিধাজনকভাবে পরে চালানোর জন্য একটি কমান্ড সময়সূচী?


87

কমান্ড চালানোর একটি সহজ উপায় কী বলে, এখন থেকে 8 ঘন্টা? আমি এইভাবে চিন্তা করতে পারি:

nohup bash -c "sleep 28800 ; ./mycommand.sh" &

আরও কি "যথাযথ" উপায় আছে?


nohup+ এর সাথে কিছু ভুল আছে sleep? কেন এটি "অনুচিত"?
সিআরপিএন

উত্তর:


123

আপনি atকমান্ডটি ব্যবহার করতে পারেন । atপরবর্তী সময়ে কমান্ডগুলো। atউপযোগ মান ইনপুট এবং তাদের একসঙ্গে গ্রুপ থেকে কমান্ড পাঠ করবে হিসাবে একটি এ-পেশা, পরবর্তী সময়ে নিষ্পন্ন করা হবে।

সাধারণত atউবুন্টুতে ডিফল্টরূপে ইনস্টল করা হয়, তবে যদি আপনার প্রকাশে এটি অন্তর্ভুক্ত না থাকে তবে এর মাধ্যমে ইনস্টল করুন:

sudo apt-get install at

আরও তথ্যের জন্য বিকল্পগুলি, উদাহরণগুলি এবং অন্যরা উবুন্টু ম্যানপেজ সংগ্রহস্থলটি দেখুন

উদাহরণ:

at now +8 hours -f ~/myscript.sh

আপনি পছন্দ করতে সুবিধাজনক shorthands ব্যবহার করতে পারেন, tomorrowবা noon, হিসাবে

echo "tweet fore" | at teatime 

সতর্কতা: এটি পাইপের বাম দিকে তত্ক্ষণাত কমান্ডটি চালাবেতবে কেবল পরে এটির আউটপুট উপস্থাপন করবে। উদাহরণটিও দেখায় যে কীভাবে আপনি পদক্ষেপগুলি পাইপ করতে পারেনatat -cআপনি নির্ধারিত ক্রিয়াগুলি পরীক্ষা করার উপায়, যা আপনি সহজেই তাদের সংখ্যার সাথে তালিকাভুক্ত করতে পারেন:

at -c 3

19
মূল পোস্টারের প্রশ্নটি আরও নির্দিষ্টভাবে সম্বোধন করে এমন একটি সাধারণ ব্যবহার উদাহরণ যুক্ত করতে সহায়ক হতে পারেat now +8 hours -f ~/myscript.sh
স্টিল্ড্রাইভার

6
তদ্ব্যতীত, at 8:00একটি নিখুঁত সময়ে কমান্ডটি চালাতে হবে, এবং batch"যখন কম্পিউটারটি নিষ্ক্রিয় মনে হয়" এর জন্য
সাইমন রিখর

4
যদি কেউ ভাবছিলেন, teatimeসন্ধ্যা 4 টা বাজে। কিছু কারণে এটি manpages.ubuntu.com/manpages/raring/man1/at.1posix.html উল্লেখ করা হয়নি তবে এটি man atএবং এখানে manpages.ubuntu.com/manpages/raring/en/man1/at.1.html রয়েছে
ড্যান

3
সম্ভবত আমরা উল্লেখ করতে পারি যে "at" ইউটিলিটি ডিফল্টরূপে ইনস্টল করা হয় নি এবং অন্য কেউ যদি এটি পেতে চায় তবে কেবল "এট" প্যাকেজটি ইনস্টল করতে পারে? সম্পাদনা: যাইহোক, আমি কেবল উত্তরটি সম্পাদনা করেছি (ম্যানপেজের লিঙ্কটিও স্থির করে দিয়েছি)।
হার্টস্যামিক

4
সাবধান থাকুন যে পাইপিংয়ের সাথে সাথে কমান্ডটি তত্ক্ষণাত্ চালিত হবে এবং কেবল আউটপুট নির্ধারণ করবে। আমার 4 ঘন্টা 3 ডি প্রিন্ট ব্যর্থ হয়েছিল কারণ আমি শিডিয়ুল করতে চেয়েছিলাম gpio write 8 1তবে এটি এখনই কার্যকর করা হয়েছে।
ম্যাকিয়েজ সুইচ

8

হ্যাঁ, আপনি একটি ক্রোন জব সেট করতে পারেন।

উদাহরণস্বরূপ যদি এখন সময় 14:39:00 এবং আজ শুক্রবার, 30 আগস্ট, আপনি নিম্নলিখিত ক্রোন জবটি (8 ঘন্টা পরে মৃত্যুদন্ড কার্যকর করতে হবে) আপনার ক্রন্টব ফাইলটিতে crontab -eকমান্ডটি ব্যবহার করে যুক্ত করতে পারেন :

39 22 30 8 5  /path/to/mycommand.sh

আরও সম্পর্কে:


3
ঠিক আছে, হ্যাঁ, ক্রোন জব সম্পর্কে আমার জানা উচিত ছিল। এটি এমনকি মেসেঞ্জার কারণ এটি তখন অনির্দিষ্টকালের জন্য ক্রন্টাবের চারপাশে বসে থাকে, তাই না?
স্টিভ বেনেট

4
@ রাদুরাদেয়ানু: ক্রোন সহ, সাবধান যে কয়েক বছরের মধ্যে এটি আবার গুলি চালাতে পারে (যখন ৩০ শে আগস্ট শুক্রবারে সেখানে উপস্থিত হয়) ...
অলিভিয়ার ডুলাক

2
এটি একটি চালাক হ্যাক। তবে 'এট' অনেক ভাল উপায়। 14:39 এ কম্পিউটারটি বন্ধ থাকলে কী হবে?
এমুরি

1
তবুও এটি এখনও আমার বক্তব্য নয়। আমার বক্তব্যটি হ'ল আপনি যে পাঠ্যটি প্রবিষ্ট করেছেন (তা আমি মনে করি) আক্ষরিকভাবে ঘটনার পরে আপনার ক্রোনটবে বসে থাকবে এবং আপনার জন্য আরও একটি ক্লিনআপ টাস্ক তৈরি করবে।
স্টিভ বেনেট

2
@ স্টিভবেনেট হ্যাঁ, আপনি ঠিক বলেছেন। crontabআপনি এটি অপসারণ না হওয়া অবধি কমান্ডটি আপনার মধ্যে থাকবে । এক বছর পরে, যখন আপনি ভুলে গেছেন কে এটি সেখানে রেখেছিল এবং কেন, আপনি কমান্ডটি দিয়ে কী করবেন তা ভেবে আপনার মাথা আঁচড়তে থাকবে।
ধানের ল্যান্ডাউ

8

জন্য gnome-ভিত্তিক GUI ব্যবহারকালে cron, atএবং অন্য কোনো:

প্রবর্তনের CronHowto ব্যবহার প্রস্তাব দেওয়া gnome-scheduleGUI, যা টার্মিনাল সব আবর্জনা টাইপ করার পরিবর্তে অনেক nicer আছে (জন্য। ESP "গড়" উবুন্টু ব্যবহারকারীরা "ক্ষমতা" * স্নো / BSD ব্যবহারকারী যারা।)

তফসিলী কার্যগুলি বা চালনার জন্য ইউনিটি ড্যাশ (বা অন্যান্য অ্যাপ্লিকেশন মেনু) ব্যবহার করে এটি চালান gnome-schedule

জিনোম-ভিত্তিক উবুন্টু সিস্টেমে অ্যাপ্লিকেশনগুলিতে জিনোম শিডিয়ুলড টাস্ক টুল (জিনোম-শিডিউল প্যাকেজ থেকে) -> সিস্টেম সরঞ্জাম ক্রোন ব্যবহারের জন্য অনুরোধ সহ একটি গ্রাফিক্যাল ইন্টারফেস সরবরাহ করে। প্রকল্পের ওয়েবসাইটটি http://gnome-schedule.sourceforge.net/ এ রয়েছে ; সফ্টওয়্যারটি সফ্টওয়্যার কেন্দ্র থেকে বা টাইপ করে ইনস্টলযোগ্য

sudo apt-get install gnome-schedule

একটি টার্মিনালে।

gnome-scheduleআপনার হোম ডিরেক্টরিতে কোনও স্ক্রিপ্টের জন্য ব্যবহার করে , এই ধরণের উইন্ডোটি ব্যবহার করে একটি নতুন "at" কমান্ড সেট আপ করা হবে:

এখানে চিত্র বর্ণনা লিখুন


5

এটি করার একটি তাত্পর্যপূর্ণ এবং নোংরা উপায়টি আমি আবিষ্কার করার আগে আবিষ্কার করেছিলাম atwas

বলুন যে আপনি চান আপনার স্ক্রিপ্ট দুপুরে চলবে:

until [[ "$(date)" =~ "12:00:" ]]; do
    sleep 10
done
./mycommand.sh

বলুন আপনি আগামীকাল দুপুরে এটি চালাতে চান (আজ আমার জন্য 24 নভেম্বর):

until [[ "$(date)" =~ "25 12:00:" ]]; do 
    sleep 30
done
./mycommand.sh

আপডেট : সামান্য উন্নত পদ্ধতি: ব্যবহার করে কেবল আপনার যত্ন নেওয়া নম্বরগুলি পরীক্ষা করুন date +FORMAT:

until [[ $(date +%H:%M) == 21:06 ]]; do
    ...

10
দুই যারা এই উত্তর করেছি upvoted করতে, দয়া at, cron, বা অন্য কোন বাস্তব নির্ধারণকারী আবেদন। টাস্ক শিডিয়ুলিং হার্ড, এবং আপনার পুনর্নবীকরণ করা চাকা নয়।
ডিমো 414

1
@ dimo414 আমার পদ্ধতিতে কী ভুল?
wjandrea

8
সর্বনিম্ন, এটি ব্যস্ত-অপেক্ষায়, যা অপচয়। সবচেয়ে খারাপ, এটি সঠিক হওয়ার গ্যারান্টিযুক্ত নয়; শর্তসীমাটি মিস করার জন্য এটি পুরোপুরি সম্ভব (যদি সম্ভব না হয়)। নিয়মিত প্রকাশে আপনার শিডিয়ুলারকে ব্যাস করাও অত্যন্ত ত্রুটিযুক্ত। এটি যথেষ্ট পরিমাণে কার্যকর হতে পারে তবে এর কোনও সুবিধা নেই at
dimo414

(একদিকে: আমি আপনার উত্তরটিকে হ্রাস করি নি, আমি মনে করি না লোকেরা এটি ব্যবহার করা উচিত)
ডিমো 414

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