উত্তর:
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
সম্ভবত এটি করার একটি আরও ছোট উপায় আছে, আমি কেবল এটি আমার মাথা থেকে বের করে দিয়েছি :)
awk
,atq | awk '{ system("at -c " $1) }'
পূর্ববর্তী প্রতিক্রিয়াগুলির উপর ভিত্তি করে, এটি প্রতিটি কাজের লাইনটি 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
অনেক সহজ পদ্ধতির:
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
আমি এর 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"';}
at -c $(atq | cut -f 1)
বাfor each in $(atq | cut -f 1)
"কাজের সন্ধান করতে পারে না" ত্রুটিগুলি এড়ানো হবে will (এছাড়াও, বাশের তেমনfor ((each=1; each<=MAXJOB; each++))
কোনও প্রয়োজন নেইseq
you're আপনি যদি বহনযোগ্যতার সাথে সম্পর্কিত হন তবে#!/bin/sh
))