কিভাবে আপডেট উপলব্ধ আছে তা জানতে পারি?


8

আমি একটি 12.04 এলটিএস উবুন্টু সার্ভার চালাচ্ছি। এবং আমি মনে করি আপডেটগুলি উপলভ্য হলে আমাকে অবহিত করা ভাল it তবে আমি কীভাবে জানব তা খুঁজে পাচ্ছি না ...

আমি apt-getম্যান পৃষ্ঠা দেখার চেষ্টা করেছি । এটি থেকে আমি apt-get -s upgradeপ্রশ্নগুলিতে বাধা না দিয়ে কোনও স্ক্রিপ্টে এপ-গেট আউটপুট পেতে সক্ষম হয়েছি ।

এখন, আমি স্পষ্টভাবে পৃথকতা দেখতে পাচ্ছি:

আপডেটগুলি উপলব্ধ:

apt-get -s upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  dpkg dpkg-dev libdpkg-perl
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst dpkg [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [amd64])
Conf dpkg (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [amd64])
Inst dpkg-dev [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all]) []
Inst libdpkg-perl [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all])
Conf libdpkg-perl (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all])
Conf dpkg-dev (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all])

আপডেটগুলি উপলভ্য নয়:

apt-get -s upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

তবে সেখান থেকে কীভাবে এগিয়ে যেতে হবে জানি না। বাশ স্ক্রিপ্ট (বা পিএইচপি স্ক্রিপ্ট) থেকে আমি কীভাবে বলতে পারি যে আপডেটগুলি পাওয়া যায় বা নেই?

সম্পাদনা করুন:

আমার বর্তমান বাশ কোডটি এখানে। এটা কাজ করে না.

updates_available=`/etc/update-motd.d/90-updates-available`

if [ "${updates_available}" = "0 packages can be updated. 0 updates are security updates." ];
then
   echo "No updates are available"
else
   echo "There are updates available"
fi

ভাল এটি 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.আপডেট না থাকলে কেবল তা বলতে চলেছে ।
ন্যাটজিউ

উত্তর:


18

ম্যান পেজগুলি পড়ুন motd(5), pam_motd(8)এবং update-motd(5)। আমার সিস্টেমে, লগ ইন করার সময় এটি প্রদর্শিত হয় যা /etc/update-motd.d/90-updates-availableআহ্বান জানায় /usr/lib/update-notifier/update-motd-updates-available:

19 packages can be updated.
12 updates are security updates.

কিছুটা গভীর গভীরতার সাথে "...- আপডেট-উপলভ্য" স্ক্রিপ্টটি প্রার্থনা করে /usr/lib/update-notifier/apt-check --human-readable। যদি আপনি এটি (অজগর) পড়ে থাকেন তবে আপনি দেখতে পাবেন যে আপনি যদি মানব পঠনযোগ্য পতাকা বাদ দেন তবে এটি "19; 12" স্টারডারকে আউটপুট দেবে। আমরা এটি দিয়ে এটি ধরতে পারি:

IFS=';' read updates security_updates < <(/usr/lib/update-notifier/apt-check 2>&1)
echo $updates
echo $security_updates 
19
12

এখন আপনি বলতে পারেন:

if (( updates == 0 )); then
    echo "No updates are available"
else
    echo "There are updates available"
fi

আমি তার সাথে যেতে পারি এবং পরীক্ষা if [ / ইত্যাদি / আপডেট-মোটড.ডি / 90-আপডেট-উপলভ্য = = "0 প্যাকেজ আপডেট করা যেতে পারে 0 0 আপডেটগুলি সুরক্ষা আপডেট" " ]; তারপরে ... fi`
অ্যাডলাইন

দুর্ভাগ্যক্রমে, চেকটি কাজ করে না (আমি আমার আগের জবাবটিতে ভুলে যাওয়া উক্তিগুলি যুক্ত করেছি।) নতুন লাইনগুলির সাথে আমার কিছু করার সন্দেহ আছে। আমি আপনার উত্তর থেকে প্রাপ্ত কোডটি দিয়ে আমার পোস্টটি আপডেট করেছি।
অ্যাডলাইন

পরিশোধিত উত্তর।
গ্লেন জ্যাকম্যান 20

দুর্দান্ত উত্তর, @glennjackman। আমি google.com/search?q=apt-get+check+if+updates+are+ উপলভ্য #ImNotHelpfulToday =)
0xSheepdog
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.