ক্রোন সহ স্বয়ংক্রিয়ভাবে কেন আপ্ট-ব্যর্থ হয়?


15

আমি আমার সিস্টেম আপডেটগুলি স্বয়ংক্রিয় করতে ক্রোন ব্যবহার করার চেষ্টা করছি। আপনি নীচে আমার ক্রন্টব, কমান্ড এবং ফলাফলের ত্রুটি দেখতে পাচ্ছেন।

আমি যখন রুট হিসাবে আপগ্রেড.শ চালাই, স্ক্রিপ্টটি ঠিকঠাক হয়। ক্রোন যখন এটি apt-get -y updateচালায়, কোনও সমস্যা চালায় না, তবে aptitude -y safe-upgradeব্যর্থ হয়। আমি এই ত্রুটিটি অনুমান করছি: debconf: (This frontend requires a controlling tty.)কারণ এখানে একটি কার্নেল আপডেট রয়েছে যার ফলস্বরূপ আপডেটগুলি গ্রাব হয়, যার জন্য আমার স্পষ্টতই বলা দরকার যে এটি ওভাররাইট করা ঠিক আছে /boot/grub/menu.lst। তবে আমি পথের ত্রুটিগুলি বুঝতে পারি না। এবং আমি এমন আপডেটগুলি চাই যা আমার তদারকির প্রয়োজন হয় না।

আমি এই প্রশ্নটিunattended-upgrades পড়েছি এবং এটি এখনও অগ্রহণযোগ্য সমাধান হিসাবে সমাধান করেছি এবং আমি এটি ব্যবহার করে শেষ করতে পারি তবে কেন আমি ক্রোন ব্যবহার করতে পারি না? দেখে মনে হচ্ছে এটি সত্যই সহজ এবং আরও বেশি শিরা হতে পারে।

নিম্নলিখিতরূপে crontab পরিবর্তন

root@daedalus:~/bin# crontab -l
# m h  dom mon dow   command
45 06 * * * ~/bin/upgrades.sh

upgrades.sh

root@daedalus:~/bin# cat upgrades.sh 
#!/bin/bash
/usr/bin/apt-get -y update
/usr/bin/aptitude -y safe-upgrade

ত্রুটি

debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Fetched 37.6MB in 4min 23s (143kB/s)
dpkg: warning: 'ldconfig' not found on PATH.
dpkg: warning: 'start-stop-daemon' not found on PATH.
dpkg: warning: 'update-rc.d' not found on PATH.
dpkg: 3 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install.  Trying to recover:
dpkg: warning: 'ldconfig' not found on PATH.
dpkg: warning: 'start-stop-daemon' not found on PATH.
dpkg: warning: 'update-rc.d' not found on PATH.
dpkg: 3 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...

উত্তর:


10

বার্তাগুলি আপনাকে বলছে যে আপনার PATHপরিবেশের পরিবর্তনশীলটি ভুল।

যোগ করার চেষ্টা করুন

PATH=/usr/bin:/bin:/usr/sbin:/sbin

আপনার শীর্ষে crontab

অথবা আপনি PATHদ্বিতীয় লাইন হিসাবে একই লাইন রাখতে পারে ~/bin/upgrades.sh। কমান্ড লাইন থেকে আপনার পরীক্ষা এবং আপনার পরীক্ষার crontabএকই ফলাফল হওয়া উচিত।


আমি দেখি. আমি ভুল কথায় কমান্ডটি স্ক্রিপ্টে রেখেছি! অবশ্যই আমি ভুল ছিল। সুতরাং প্রথম স্থানে কোনও ব্যবহারকারীর ডিফল্ট পাথ কী নির্ধারণ করে এবং কীভাবে এটি প্রয়োগ করা হয়?
djeikyb

ক্রোন ব্যবহারকারীর পথে কেন নেয় না? ক্রন্টব বা আমার স্ক্রিপ্টে পথ যুক্ত করা কি ভাল? অসুবিধা আছে কি?
djeikyb

এটি সুরক্ষার কারণে বলে মনে করা হয়, তবে আমি সম্মতি জানাই, এটি বিরক্তিকর। 1) আপনি যদি এটি আপনার স্ক্রিপ্টে রাখেন তবে PATH=...আপনি কোনও ফাইল রাখতে পারেন, উদাহরণস্বরূপ ~/.env, এবং স্ক্রিপ্টের . ~/.envশীর্ষের কাছাকাছি ব্যবহার করে আপনার লেখা প্রতিটি স্ক্রিপ্ট থেকে উত্স তৈরি করতে পারেন । তারপরে আপনি যদি নিজের পরিবর্তন করেন তবে আপনাকে PATHকেবল একটি ফাইল সম্পাদনা করতে হবে। 2) আপনি যদি এটি রাখেন তবে এর crontabঅর্থ আপনার সমস্ত ক্রোন স্ক্রিপ্টগুলি সম্পাদনা করতে হবে না, তবে আপনি নিজের PATH(যেমন ~/.bashrcএবং crontab) পরিবর্তন করতে চান তবে সম্পাদনা করার জন্য আপনার কাছে দুটি জায়গা থাকবে । যা ভাল তা আপনার উপর নির্ভর করে।
মাইকেল

কুল। আমার ধারণা আমার প্রশ্নটি কেন এটি অনিরাপদ? আমি এখনই গুগল করছি, তবে এখনও কিছু নিয়ে আসিনি। যাইহোক, আমি পরিবর্তনগুলি করেছি, এবং আগামীকাল সকালে এটি উত্তর হিসাবে চিহ্নিত হবে, যখন এটি চালানো হবে, ঠিক অন্য কোনও কিছু যদি দুর্বল হয়ে যায়।
djeikyb

আমিও জানতাম। যদি কোনও কারণ থাকে তবে ডকুমেন্টেশন বা cronসোর্স কোড উভয়ই সেটিকে বলে না। তাত্ত্বিকভাবে এটি একটি সামঞ্জস্যপূর্ণ পরিবেশকে বাধ্য করা হতে পারে যাতে আপনি কোনও ব্যবহারকারীর থেকে অন্য ব্যবহারকারীকে একটি ক্রন্টব অনুলিপি করতে পারেন, তবে কেবল PATHপরিবর্তন হয়ে যায়, কারণ এটি হতে পারে না।
মাইকেল

14

যদিও আপনার মূল সমস্যার ইতিমধ্যে উত্তর দেওয়া হয়েছে, দেখে মনে হচ্ছে আপনি ডিবেকনফের সতর্কতা পেয়ে যাচ্ছেন কারণ আপনি ইন্টারেক্টিভ টিটি ছাড়াই অ্যাপটি-গেট চালাচ্ছেন। এই বার্তাগুলি থেকে মুক্তি পেতে আপনি এই পরিবেশটি পরিবর্তনশীল সেট করতে পারেন:

DEBIAN_FRONTEND=noninteractive

1

একটি সম্প্রদায় উইকি পৃষ্ঠা রয়েছে: ক্রোনটব কেন কাজ করে না তার কারণ । এই ক্ষেত্রে, মনে হচ্ছে কারণটি ক্রনের সীমিত পরিবেশের ভেরিয়েবল। আপনি কি এটি /etc/cron.daily- এ কোনও শেল স্ক্রিপ্ট থেকে চালাতে পারেন?


আপনার উত্তর ভুল বুঝেছেন, তাই মন্তব্য করার কিছুই নেই।
লুড়ি

0

ক্রোনহোটো থেকে :

কমান্ডগুলি চালিত হচ্ছে তার উপর নির্ভর করে আপনার নীচের লাইনটি তাদের ক্রন্টব ফাইলের শীর্ষে রেখে মূল ব্যবহারকারী PATH ভেরিয়েবলটি প্রসারিত করতে হবে:

পাথ = / usr / sbin / usr / বিন: পক্ষ থেকে / sbin: / বিন

তবে বাস্তবে, আপনার মতো করে সবকিছু ঠিকঠাক বলে মনে হচ্ছে .... আপনি কোথা থেকে এই ত্রুটিগুলি এনেছিলেন?

নিম্নলিখিতরূপে crontab পরিবর্তন:

root@PORTATIL:/var/log$ crontab -l
* * */2 * * /usr/share/myupdate.sh > /var/log/myupdate.log

লিপি:

root@PORTATIL:/etc# cat /usr/share/myupdate.sh 
#!/bin/bash
#Testing updates
apt-get update -y
apt-get upgrade -y

লগইন করুন:

root@PORTATIL:/etc# cat /var/log/myupdate.log 

Hit http://security.ubuntu.com lucid-security Release.gpg
Hit http://archive.canonical.com lucid Release.gpg
Hit http://archive.canonical.com lucid Release.gpg
Hit http://packages.medibuntu.org lucid Release.gpg
Get:1 http://dl.google.com stable Release.gpg [197B]
Hit http://ppa.launchpad.net lucid Release.gpg
Hit http://ppa.launchpad.net lucid Release.gpg
Hit http://ppa.launchpad.net lucid Release.gpg
Hit http://security.ubuntu.com lucid-security Release
Hit http://badgerports.org lucid Release.gpg
Hit http://archive.canonical.com lucid Release
Hit http://ppa.launchpad.net lucid Release.gpg
Hit http://ppa.launchpad.net maverick Release.gpg
Hit http://ppa.launchpad.net lucid Release.gpg
Hit http://ppa.launchpad.net lucid Release.gpg
Hit http://ppa.launchpad.net lucid Release.gpg
Get:2 http://dl.google.com stable Release [1347B]
Hit http://security.ubuntu.com lucid-security/main Packages
Hit http://ppa.launchpad.net lucid Release
Hit http://ppa.launchpad.net lucid Release
Hit http://packages.medibuntu.org lucid Release
Hit http://download.virtualbox.org lucid Release.gpg
Hit http://archive.canonical.com lucid Release
Hit http://linux.dropbox.com lucid Release.gpg
Get:3 http://dl.google.com stable/main Packages [1110B]
Hit http://security.ubuntu.com lucid-security/restricted Packages
Hit http://security.ubuntu.com lucid-security/main Sources
Hit http://security.ubuntu.com lucid-security/restricted Sources
Hit http://security.ubuntu.com lucid-security/universe Packages
Hit http://security.ubuntu.com lucid-security/universe Sources
Hit http://ppa.launchpad.net lucid Release
Hit http://ppa.launchpad.net lucid Release
Hit http://ppa.launchpad.net maverick Release
Hit http://ppa.launchpad.net lucid Release
Hit http://ppa.launchpad.net lucid Release
Hit http://badgerports.org lucid Release
Hit http://archive.canonical.com lucid/partner Packages
Hit http://security.ubuntu.com lucid-security/multiverse Packages
Hit http://security.ubuntu.com lucid-security/multiverse Sources
Hit http://ppa.launchpad.net lucid Release
Hit http://packages.medibuntu.org lucid/free Packages
Hit http://download.virtualbox.org lucid Release
Hit http://es.archive.ubuntu.com lucid Release.gpg
Hit http://linux.dropbox.com lucid Release
Hit http://archive.canonical.com lucid/partner Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://es.archive.ubuntu.com lucid-updates Release.gpg
Hit http://badgerports.org lucid/main Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://ppa.launchpad.net maverick/main Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://packages.medibuntu.org lucid/non-free Packages
Hit http://linux.dropbox.com lucid/main Packages
Hit http://es.archive.ubuntu.com lucid Release
Hit http://download.virtualbox.org lucid/contrib Packages
Hit http://ppa.launchpad.net lucid/main Packages
Hit http://es.archive.ubuntu.com lucid-updates Release
Hit http://es.archive.ubuntu.com lucid/main Packages
Hit http://es.archive.ubuntu.com lucid/restricted Packages
Hit http://es.archive.ubuntu.com lucid/main Sources
Hit http://es.archive.ubuntu.com lucid/restricted Sources
Hit http://es.archive.ubuntu.com lucid/universe Packages
Hit http://es.archive.ubuntu.com lucid/universe Sources
Hit http://es.archive.ubuntu.com lucid/multiverse Packages
Hit http://es.archive.ubuntu.com lucid/multiverse Sources
Hit http://es.archive.ubuntu.com lucid-updates/main Packages
Hit http://es.archive.ubuntu.com lucid-updates/restricted Packages
Hit http://es.archive.ubuntu.com lucid-updates/main Sources
Hit http://es.archive.ubuntu.com lucid-updates/restricted Sources
Hit http://es.archive.ubuntu.com lucid-updates/universe Packages
Hit http://es.archive.ubuntu.com lucid-updates/universe Sources
Hit http://es.archive.ubuntu.com lucid-updates/multiverse Packages
Hit http://es.archive.ubuntu.com lucid-updates/multiverse Sources
Fetched 2654B in 1s (1628B/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

আমার ত্রুটিগুলি ক্রোন জব লগ থেকে আসে আমাকে মেল করা। আমি 10.04 চালাচ্ছি, আপনার মতোই। অদ্ভুত ..
djeikyb

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