আমি চাকরিতে কীভাবে বিষয়বস্তু মুদ্রণ করব?


34

আমার একটি ডেবিয়ান বাক্স রয়েছে যা কিছু কাজের সাথে নির্ধারিত রয়েছে at। আমি জানি আমি তাদের সময় ব্যবহার করে কাজের তালিকা তৈরি করতে পারি atq, তবে উঁকি দেওয়া ছাড়াও তাদের বিষয়বস্তু মুদ্রণের কোনও উপায় আছে /var/spool/cron/atjobsকি?

উত্তর:


39

at -c jobnumberএকটি একক কাজের তালিকা দেবে। আপনি যদি সেগুলির সব দেখতে চান তবে আপনি এর মতো স্ক্রিপ্ট তৈরি করতে পারেন

#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done 

সম্ভবত এটি করার একটি আরও ছোট উপায় আছে, আমি কেবল এটি আমার মাথা থেকে বের করে দিয়েছি :)


7
at -c $(atq | cut -f 1)বা for each in $(atq | cut -f 1)"কাজের সন্ধান করতে পারে না" ত্রুটিগুলি এড়ানো হবে will (এছাড়াও, বাশের তেমন for ((each=1; each<=MAXJOB; each++))কোনও প্রয়োজন নেই seqyou're আপনি যদি বহনযোগ্যতার সাথে সম্পর্কিত হন তবে #!/bin/sh))
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া।

ভাল পুরানো ভুলবেন না awk,atq | awk '{ system("at -c " $1) }'
নর্চল্লি

7

পূর্ববর্তী প্রতিক্রিয়াগুলির উপর ভিত্তি করে, এটি প্রতিটি কাজের লাইনটি atqকাজের নম্বর এবং সময় নির্ধারিত সময় এবং তারপরে কেবল চালানো কমান্ডকে কালানুক্রমিকভাবে (কাজের সংখ্যার পরিবর্তে) বাছাই করে:

for j in $(atq | sort -k6,6 -k3,3M -k4,4 -k5,5 |cut -f 1); do atq |grep -P "^$j\t" ;at -c "$j" | tail -n 2; done

উত্পাদন, যেমন

48  Fri Mar 10 15:13:00 2017 a root
/usr/local/bin/a-command

47  Fri Mar 10 15:14:00 2017 a root
/usr/local/bin/another-command

4

অনেক সহজ পদ্ধতির:

for j in $(atq | cut -f 1); do at -c "$j"; done

আপনি lessঘুরে ঘুরে প্রত্যেকের দিকেও নজর রাখতে পারেন যা পরিষ্কার হতে পারে:

for j in $(atq | cut -f 1); do at -c "$j" | less; done

2

আমি এর atqcজন্য কমান্ড তৈরি করেছি ("atq সহ কমান্ড")। একটি বাশ ফাংশন। এটি bash কমান্ড লাইনে (টার্মিনাল কমান্ড) চালান। অথবা এটি ~/.bashrcপরে সরবরাহ করার জন্য ফাইলটিতে রাখুন:

atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }

এটা পরীক্ষা করো:

atqc

এটি 3.1.13 at -Vসংস্করণ সহ RHEL7 এর জন্য কাজ করে ।

at -Vসংস্করণ 3.1.18 সহ উবুন্টু 16.04 এর মধ্যে কিছুটা আলাদা আউটপুট ফর্ম্যাট রয়েছে at -c N, তাই আমার উবুন্টু সার্ভারে এটি কাজ করে:

atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.