SSD Nodes Learn 🎉 VPS $5.50/నెల నుండి
మార్గదర్శకాలు Matt Connorద్వారా Matt Connor · అప్‌డేట్ చేయబడింది 2026-08-13

Rocky Linux, AlmaLinux లో dnf-automatic సెటప్ చేయడం ఎలా?

Rocky Linux మరియు AlmaLinux లలో dnf-automatic కాన్ఫిగర్ చేసే విధానం. సెక్యూరిటీ అప్‌డేట్స్, systemd టైమర్, ఈమెయిల్ అలర్ట్స్ మరియు రీబూట్ పాలసీలను సెట్ చేయడం నేర్చుకోండి.

Rocky Linux మరియు AlmaLinux లలో dnf-automatic చేసే పని

Rocky Linux మరియు AlmaLinux లలో సెక్యూరిటీ అప్‌డేట్‌లను ఆటోమేటిక్‌గా పొందడానికి dnf-automatic ఉపయోగపడుతుంది. ఇది systemd టైమర్ ద్వారా ప్రారంభమయ్యే ఒక చిన్న ప్రోగ్రామ్. ఇది /etc/dnf/automatic.conf ఫైల్‌ను చదివి, ఆ ఫైల్‌లో అనుమతించిన అప్‌డేట్‌లను మాత్రమే వర్తింపజేస్తుంది. దీనిని ఇన్‌స్టాల్ చేయడానికి ఒకే కమాండ్ సరిపోతుంది. ఈ గైడ్‌లోని మిగిలిన భాగం, ఈ ప్రోగ్రామ్ సర్వర్‌ను రక్షిస్తుందా లేదా ఏమీ చేయకుండా నిశ్శబ్దంగా ఉంటుందా అని నిర్ణయించే సెట్టింగ్‌ల గురించి వివరిస్తుంది.

మీరు Debian లేదా Ubuntu నుండి వచ్చినట్లయితే, Ubuntu VPS పై unattended-upgrades చేసే పనినే ఇది కూడా చేస్తుంది. అయితే, అన్నింటికంటే ముఖ్యమైన ఒక వ్యత్యాసం ఉంది: ప్యాకేజీ మేనేజర్ దృష్టిలో "security" అనే పదానికి అర్థం ఏమిటి అనేది. Ubuntu లో ఇది ఒక ప్రత్యేకమైన ఆర్కైవ్ పాకెట్. RHEL కుటుంబానికి చెందిన OSలలో, ఇది ప్రచురించబడిన అడ్వైజరీలకు జోడించబడిన మెటాడేటా. కొన్నిసార్లు ఈ మెటాడేటా లేకపోవచ్చు లేదా పాతది కావచ్చు. అడ్వైజరీ డేటా లేని రిపోజిటరీకి dnf-automatic ను పాయింట్ చేస్తే, అది ఏమీ ఇన్‌స్టాల్ చేయదు, కానీ అంతా విజయవంతమైందని రిపోర్ట్ చేస్తుంది.

ఈ గైడ్ ఆగస్టు 2026 నాటికి Rocky Linux 9 మరియు AlmaLinux 9 ల కోసం రూపొందించబడింది. ఇవి DNF 4 ను ఉపయోగిస్తాయి (DNF అనేది RHEL కుటుంబంలో ప్యాకేజీ మేనేజర్). 10వ వెర్షన్లు DNF5 కి మారాయి మరియు అక్కడ పేర్లు మారుతాయి, కాబట్టి వాటి కోసం చివరలో ప్రత్యేక విభాగం ఉంది. కింద ఉన్న ప్రతి కమాండ్‌ను మీరు మీ స్వంత సర్వర్‌లో రన్ చేయవచ్చు, దాని పక్కనే మీకు రావలసిన అవుట్‌పుట్ ఇవ్వబడింది.

dnf-automatic ని ఇన్‌స్టాల్ చేయడం మరియు అది అందించే కాన్ఫిగరేషన్‌ను చదవడం

ఆటోమేటిక్ అప్‌డేట్‌లను ఎనేబుల్ చేయడం అనేది కొత్త VPSలో మొదటి పది నిమిషాలు సెటప్‌లో భాగంగా ఉండాలి. ఇది మీరు root కాని వినియోగదారుని మరియు ఫైర్‌వాల్‌ను సిద్ధం చేసుకున్న వెంటనే చేయాల్సిన పని.

sudo dnf install -y dnf-automatic
rpm -q dnf dnf-automatic
systemctl is-enabled dnf-automatic.timer

systemctl is-enabled ప్యాకేజీని ఇన్‌స్టాల్ చేసినప్పుడు ఏదీ ప్రారంభం కాదు కాబట్టి, కొత్త ఇన్‌స్టాలేషన్‌లో disabled అని చూపిస్తుంది. "dnf-automatic" ఉన్న సర్వర్ ఒక్క అప్‌డేట్‌ను కూడా ఎందుకు అప్లై చేయలేదో చెప్పడానికి ఇదే అత్యంత సాధారణ కారణం.

DNF వెర్షన్ ఒక ఆప్షన్ విషయంలో ముఖ్యమైనది. reboot సెట్టింగ్ DNF 4.15 లో అప్‌స్ట్రీమ్‌గా వచ్చింది. Red Hat దీనిని నవంబర్ 2023లో RHBA-2023:6645 అడ్వైజరీ ద్వారా dnf-4.14.0-6.el9 లోకి బ్యాక్‌పోర్ట్ చేసింది. Rocky 9 మరియు AlmaLinux 9 ఆ ప్యాకేజీని రీబిల్డ్ చేస్తాయి, కాబట్టి ప్రస్తుత సర్వర్‌లలో ఇది ఉంటుంది, కానీ 2023 నుండి అప్‌డేట్ చేయని సర్వర్‌లలో ఇది ఉండదు.

కాన్ఫిగరేషన్ ఫైల్ /etc/dnf/automatic.conf. ఈ బిల్డ్ అర్థం చేసుకోగల ప్రతి ఆప్షన్‌ను, దాని డిఫాల్ట్ విలువతో సహా, ఈ ఫైల్ కలిగి ఉంటుంది (అవి కామెంట్ చేయబడి ఉంటాయి). మీరు ఎడిట్ చేసే ముందు ఒకసారి దీన్ని చదవండి, ఎందుకంటే మీ వెర్షన్‌కు సంబంధించి ఈ ఫైలే ప్రామాణికం.

ఏమి జరగాలనేది నిర్ణయించే రెండు స్విచ్‌లు

download_updates మరియు apply_updates అనేవి [commands] విభాగంలో ప్రవర్తనను నిర్ణయిస్తాయి. EL9 (Rocky 9 మరియు AlmaLinux 9 ల ఉమ్మడి బేస్ అయిన enterprise Linux 9) లో డిఫాల్ట్‌గా ఇవి రెండూ no లో ఉంటాయి, కాబట్టి మీరు ఎనేబుల్ చేసిన ఎడిట్ చేయని dnf-automatic కేవలం ఏ అప్‌డేట్‌లు అందుబాటులో ఉన్నాయో మాత్రమే మీకు తెలియజేస్తుంది.

  • రెండూ no: dnf-automatic అందుబాటులో ఉన్న అప్‌డేట్‌లను నివేదిస్తుంది మరియు సర్వర్‌లో దేనినీ మార్చదు.
  • download_updates = yes మరియు apply_updates = no: ప్యాకేజీలు DNF cache లోకి డౌన్‌లోడ్ అవుతాయి. దీనివల్ల ఇన్‌స్టాలేషన్ వేగంగా జరుగుతుంది మరియు నెట్‌వర్క్ అవసరం ఉండదు, కానీ ప్రస్తుతానికి ఏ మార్పు జరగదు.
  • రెండూ yes మరియు upgrade_type = default: భద్రతా సంబంధితమైనవి కాకపోయినా, అందుబాటులో ఉన్న ప్రతి అప్‌డేట్ ఇన్‌స్టాల్ అవుతుంది.
  • రెండూ yes మరియు upgrade_type = security: కేవలం సెక్యూరిటీ అడ్వైజరీలో పేర్కొన్న ప్యాకేజీలు మాత్రమే ఇన్‌స్టాల్ అవుతాయి.

పబ్లిక్-ఫేసింగ్ VPS కోసం ఒక సహేతుకమైన ప్రారంభం:

[commands]
upgrade_type = security
download_updates = yes
apply_updates = yes
random_sleep = 0
network_online_timeout = 60
reboot = never

network_online_timeout అనేది నెట్‌వర్క్ పని చేసే వరకు రన్ ఎంత సమయం (సెకన్లలో) వేచి ఉండాలో నిర్ణయిస్తుంది, ఇది ఇప్పుడే బూట్ అయిన సర్వర్‌కు చాలా ముఖ్యం. random_sleep అనేది అనేక మెషీన్ల మధ్య లోడ్‌ను పంచుకోవడానికి ఉపయోగించే పాత పద్ధతి, ఇప్పుడు ఈ పనిని టైమర్ చేస్తుంది. షిప్ చేయబడిన సర్వీస్ ఏ ఫ్లాగ్‌లను ఉపయోగిస్తుందో చూడటానికి systemctl cat dnf-automatic.service రన్ చేయండి.

06:00 వరకు వేచి ఉండకుండా, ఫైల్ మీరు ఆశించినట్లుగా పనిచేస్తుందో లేదో ఇలా పరీక్షించండి:

sudo systemctl start dnf-automatic.service
sudo journalctl -u dnf-automatic.service -n 50 --no-pager

ఈ రన్ ఏమి పరిగణనలోకి తీసుకుందో మరియు ఏమి చేసిందో journal చూపిస్తుంది. మీరు కమాండ్ లైన్ నుండి ఒక నిర్దిష్ట ప్రవర్తనను బలవంతంగా అమలు చేయవచ్చు, ఇది ఆ రన్ కోసం మాత్రమే ఫైల్ సెట్టింగ్‌లను ఓవర్‌రైడ్ చేస్తుంది:

sudo dnf-automatic --downloadupdates --no-installupdates

Rocky మరియు Alma లలో upgrade_type = security అంటే ఏమిటి

DNF వెర్షన్ నంబర్లను పోల్చడం ద్వారా ఒక అప్‌డేట్ సెక్యూరిటీ అప్‌డేట్ అవునో కాదో నిర్ణయించదు. ఇది errata మెటాడేటాను చదువుతుంది: రిపోజిటరీలో ప్రచురించబడిన updateinfo.xml అనే ఫైల్, ఇందులో ప్రతి అడ్వైజరీ దాన్ని పరిష్కరించే ప్యాకేజీలను జాబితా చేస్తుంది. AlmaLinux వీటిని ALSA అడ్వైజరీలుగా, Rocky వీటిని RLSA గా ప్రచురిస్తాయి. upgrade_type = security ఆ మెటాడేటా నుండి ఒక ఫిల్టర్‌ను తయారు చేసి, దానికి సరిపోయే ప్యాకేజీలను మాత్రమే అప్‌గ్రేడ్ చేస్తుంది.

దీని వల్ల రెండు పరిణామాలు ఉంటాయి, ఇవి రెండూ వినియోగదారులను ఆశ్చర్యపరుస్తాయి.

మొదటిది, మెటాడేటా లేకపోతే అప్‌డేట్లు ఉండవు. రిపోజిటరీలో updateinfo.xml లేకపోతే, ఫిల్టర్ దేనికీ సరిపోదు మరియు రన్ జర్నల్‌లో ఈ లైన్‌తో ముగుస్తుంది:

No security updates needed, but 3 updates available

సర్వర్ ప్యాచ్ చేయబడదు, మరియు ఎటువంటి వైఫల్యం కూడా రిపోర్ట్ అవ్వదు. మీరే స్వయంగా తనిఖీ చేయండి:

dnf updateinfo list --security
dnf check-update

dnf check-update ప్యాకేజీలను జాబితా చేసి, dnf updateinfo list --security ఏమీ చూపించకపోతే, పెండింగ్‌లో ఉన్న వాటికి ఎటువంటి అడ్వైజరీ లేదని లేదా రిపోజిటరీలో చదవడానికి అడ్వైజరీ డేటా లేదని అర్థం. Rocky మరియు AlmaLinux రెండూ దీన్ని ప్రచురిస్తాయి, కాబట్టి ఆ రెండింటిలో ఖాళీ జాబితా సాధారణంగా వాస్తవమే. CentOS Stream దీన్ని అస్సలు ప్రచురించదు.

రెండవది, సెక్యూరిటీ మోడ్ అంటే అతి తక్కువ మార్పులు చేయడం కాదు. dnf-automatic సెక్యూరిటీ ఫిల్టర్‌ను జోడించి, ఆపై సాధారణ అప్‌గ్రేడ్ మార్గంలో రన్ అవుతుంది, కాబట్టి అడ్వైజరీలో పేర్కొన్న ప్యాకేజీ రిపోజిటరీలోని సరికొత్త వెర్షన్‌కు మారుతుంది మరియు దానితో పాటు దాని డిపెండెన్సీలను కూడా లాగుతుంది. అడ్వైజరీని పరిష్కరించే అతి తక్కువ వెర్షన్‌కు మాత్రమే మారడం అనేది మాన్యువల్‌గా రన్ చేసే dnf upgrade-minimal --security ద్వారా మాత్రమే సాధ్యం. dnf-automatic లో దీని కోసం ఎటువంటి సెట్టింగ్ లేదు.

Rocky కి సంబంధించి మరొక హెచ్చరిక ఉంది. Rocky తన errata ను Red Hat డేటా నుండి తన సొంత పైప్‌లైన్ ద్వారా తయారు చేస్తుంది, మరియు ఆ పైప్‌లైన్ వెనుకబడిపోయింది. సెప్టెంబర్ 2025లో, Rocky 9 BaseOS updateinfo.xml డిసెంబర్ 2024 నుండి మారలేదని వినియోగదారులు నివేదించారు, కాబట్టి --security లో ఇటీవలి అడ్వైజరీలు లేవు, మరియు Rocky సిబ్బంది ఇది తెలిసిన సమస్య అని ధృవీకరించారు. మీరు upgrade_type = security పై ఆధారపడితే, అడ్వైజరీ జాబితాను అప్పుడప్పుడు ఇటీవలి RLSA ప్రకటనలతో పోల్చి చూడండి. మార్పు నియంత్రణ (change control) కంటే భద్రత ముఖ్యమైన సర్వర్లలో, మీరు ఎంచుకున్న షెడ్యూల్‌లో upgrade_type = default రన్ చేయడం సురక్షితమైన సెట్టింగ్.

దీనిని అమలు చేసే systemd timer

sudo systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

list-timers ఒక వరుసను, సుమారు ఒక రోజు తర్వాత ఉండే NEXT సమయాన్ని చూపాలి. పట్టిక ఖాళీగా ఉంటే, timer ఎనేబుల్ కాలేదని అర్థం, కాబట్టి ఏదీ రన్ అవ్వదు.

ప్యాకేజీతో వచ్చే timer *-*-* 6:00 వద్ద, RandomizedDelaySec=60m మరియు Persistent=true తో రన్ అవుతుంది. ఈ random delay వల్ల సర్వర్లన్నీ ఒకే సెకనులో mirror ను తాకకుండా, ఒక గంట వ్యవధిలో పనులు జరుగుతాయి. Persistent=true అంటే, 06:00 గంటలకు పవర్ ఆఫ్ అయిన మెషీన్, ఆ రోజు పనిని వదిలేయకుండా, బూట్ అయిన వెంటనే పూర్తి చేస్తుంది.

షెడ్యూల్‌ను మార్చడానికి drop-in ఉపయోగించండి. ప్యాకేజీ అప్‌గ్రేడ్ జరిగినప్పుడు /usr/lib/systemd/system లోని ఫైళ్లు భర్తీ చేయబడతాయి కాబట్టి, ఒరిజినల్ unit ఫైల్‌ను ఎడిట్ చేయవద్దు.

sudo systemctl edit dnf-automatic.timer
[Timer]
OnCalendar=
OnCalendar=*-*-* 03:30
RandomizedDelaySec=30m

ఖాళీ OnCalendar= లైన్ తప్పనిసరి. OnCalendar విలువలు పేరుకుపోతాయి, కాబట్టి ఆ రీసెట్ లేకపోతే 06:00 ఎంట్రీ అలాగే ఉండి, కొత్తది అదనంగా చేరుతుంది, ఫలితంగా job రోజుకు రెండుసార్లు రన్ అవుతుంది. systemctl list-timers dnf-automatic.timer తో ఫలితాన్ని నిర్ధారించుకుని, NEXT కాలమ్‌ను చూడండి. ఇదే drop-in నియమాలు మీరు షెడ్యూల్ చేసే ఇతర వాటికి కూడా వర్తిస్తాయి, దీని గురించి systemd service మరియు timer units రాయడం లో వివరించబడింది.

ఇక అసలు చిక్కుముడి ఇక్కడ ఉంది. ఈ ప్యాకేజీ మరో మూడు timerలను కలిగి ఉంటుంది: dnf-automatic-notifyonly.timer, dnf-automatic-download.timer మరియు dnf-automatic-install.timer. ప్రతిదీ అదే ప్రోగ్రామ్‌ను command-line flags తో ప్రారంభిస్తుంది, ఆ flags మీ కాన్ఫిగరేషన్ ఫైల్‌లోని download_updates మరియు apply_updates లను ఓవర్‌రైడ్ చేస్తాయి. dnf-automatic.timer తో పాటు వీటిలో ఒకదానిని ఎనేబుల్ చేస్తే, job రెండు వేర్వేరు పద్ధతుల్లో రెండుసార్లు రన్ అవుతుంది, ఇది మీ కాన్ఫిగరేషన్ ఫైల్‌ను పట్టించుకోనట్లుగా కనిపిస్తుంది. ఏదైనా ఒక timer ను మాత్రమే ఎనేబుల్ చేసి తనిఖీ చేయండి:

systemctl list-unit-files 'dnf-automatic*'

ఏదైనా ఇన్‌స్టాల్ చేయబడిందో లేదో ఎలా తెలుసుకోవాలి?

emit_via లోని [emitters] విభాగం రిపోర్టింగ్‌ను నియంత్రిస్తుంది. systemd కింద, stdio ఎమిటర్ జర్నల్‌కు సమాచారాన్ని రాస్తుంది. ఇది నమ్మదగిన ఎంపిక, ఎందుకంటే దీనికి అదనంగా ఏదీ ఇన్‌స్టాల్ చేయాల్సిన అవసరం లేదు:

sudo journalctl -u dnf-automatic.service --since -7d --no-pager

motd ఎమిటర్ రిపోర్టును /etc/motd లోకి రాస్తుంది మరియు ఆ ఫైల్‌లోని కంటెంట్‌ను భర్తీ చేస్తుంది. మీరు అక్కడ లాగిన్ బ్యానర్‌ను ఉంచినట్లయితే, ఈ ఎమిటర్‌ను ఉపయోగించవద్దు.

email ఎమిటర్ email_host లోని email_port కి SMTP (simple mail transfer protocol) కనెక్షన్‌ను తెరుస్తుంది. ఇవి డిఫాల్ట్‌గా localhost మరియు 25 కి సెట్ చేయబడి ఉంటాయి. కొత్త VPS లో అక్కడ ఏ సేవలు వినబడవు (listening), కాబట్టి కనెక్షన్ తిరస్కరించబడుతుంది మరియు మెయిల్ పంపబడదు. మీరు దీనిపై ఆధారపడే ముందు ss -lnt | grep ':25' ని రన్ చేయండి, మరియు అవుట్‌పుట్ ఖాళీగా ఉంటే relay-only Postfix ని సెటప్ చేయండి. మెయిల్ పనిచేస్తున్నప్పుడు, సబ్జెక్ట్ Updates applied on 'web01'. అని ఉంటుంది, ఇది system_name నుండి పేరును తీసుకుంటుంది.

ఇతర విషయాల కోసం, command ఎమిటర్ రిపోర్టును మీ ప్రోగ్రామ్‌కు స్టాండర్డ్ ఇన్‌పుట్ ద్వారా అందిస్తుంది:

[emitters]
emit_via = stdio, command
system_name = web01.example.com
send_error_messages = yes

[command]
command_format = /usr/local/bin/notify-ops
stdin_format = {body}

send_error_messages డిఫాల్ట్‌గా no కి సెట్ చేయబడి ఉంటుంది, అంటే రన్ విఫలమైతే ఏ సమాచారం అందదు. దీన్ని ఆన్ చేయండి. కేవలం విజయవంతమైన వాటిని మాత్రమే తెలియజేసే ప్యాచింగ్ సిస్టమ్, అసలు సిస్టమ్ లేకపోవడం కంటే ప్రమాదకరం, ఎందుకంటే నిశ్శబ్దాన్ని ఆరోగ్యంగా పొరబడే అవకాశం ఉంది.

dnf-automatic మీ సేవలను రీస్టార్ట్ చేయదు

ఒక ప్యాకేజీని ఇన్‌స్టాల్ చేసినప్పుడు డిస్క్‌లోని ఫైళ్లు భర్తీ చేయబడతాయి. ఇప్పటికే నడుస్తున్న ప్రాసెస్ పాత కోడ్‌ను మెమరీలో ఉంచుకుంటుంది, కాబట్టి గత నెలలో ప్రారంభమైన డెమోన్ (daemon) కోసం ప్యాచ్ చేసిన లైబ్రరీ ఏమీ చేయదు. ఇన్‌స్టాల్ చేసిన వెర్షన్‌కు మరియు అమలులో ఉన్న వెర్షన్‌కు మధ్య ఉండే ఈ వ్యత్యాసం వల్లే, అన్‌అటెండెడ్ ప్యాచింగ్‌కు కేవలం ఇన్‌స్టాల్ పాలసీ మాత్రమే కాకుండా, రీస్టార్ట్ పాలసీ కూడా అవసరం.

sudo dnf install -y dnf-plugins-core
dnf needs-restarting -s
dnf needs-restarting -r

-s, సర్వీస్ ప్రారంభమైన తర్వాత ఫైళ్లు మారిన systemd సర్వీసుల జాబితాను చూపుతుంది. -r ఒక ప్రశ్నకు సమాధానమిస్తుంది మరియు ఈ క్రింది రెండు బ్లాకులలో ఒకదానిని ప్రింట్ చేస్తుంది:

Core libraries or services have been updated since boot-up:
  * kernel
Reboot is required to fully utilize these updates.
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

-r అనేది లోతైన విశ్లేషణ కాదు. ఇది నిర్ణీత ప్యాకేజీల జాబితాను మాత్రమే తనిఖీ చేస్తుంది: kernel, kernel-core, kernel-rt, glibc, linux-firmware, systemd, dbus, dbus-broker, dbus-daemon మరియు microcode_ctl. వీటిలో ఏదైనా చివరి బూట్ తర్వాత ఇన్‌స్టాల్ చేయబడితే, మీకు మొదటి సమాధానం వస్తుంది. సర్వర్‌లో మరేదైనా మార్పుకు రీబూట్ అవసరమైనప్పుడు, /etc/dnf/plugins/needs-restarting.d/ కింద .conf తో ముగిసే ఫైల్‌లో మీ స్వంత ప్యాకేజీ పేర్లను జోడించండి.

స్క్రిప్ట్‌ల కోసం ఒక ముఖ్య గమనిక: రీబూట్ అవసరమైనప్పుడు మరియు కమాండ్ విఫలమైనప్పుడు కూడా dnf needs-restarting -r నాన్-జీరో (non-zero) ఎగ్జిట్ స్టేటస్‌ను ఇస్తుంది, కాబట్టి కేవలం ఎగ్జిట్ స్టేటస్‌ను బట్టి రెండింటి మధ్య తేడాను గుర్తించలేము. అవుట్‌పుట్ టెక్స్ట్‌ను చదవండి.

ఒక సర్వీస్‌ను రీస్టార్ట్ చేయడం చిన్న పని మరియు సాధారణంగా అదే సరైన పద్ధతి. SSH డెమోన్‌ను రీస్టార్ట్ చేసేటప్పుడు, ఇప్పటికే తెరిచి ఉన్న రెండవ SSH సెషన్ నుండి చేయండి; తద్వారా తప్పు కాన్ఫిగరేషన్ వల్ల మీరు లాక్-అవుట్ అవ్వకుండా ఉంటారు. కొత్త కెర్నల్ విషయంలో మాత్రమే రీబూట్ అవసరం, ఎందుకంటే నడుస్తున్న కెర్నల్‌ను ఉన్నచోటే భర్తీ చేయడం సాధ్యం కాదు.

సర్వర్ తనంతట తానుగా రీబూట్ అవ్వాలా?

[commands]
reboot = when-needed
reboot_command = shutdown -r +5 'Rebooting after applying package updates'

reboot = never అనేది డిఫాల్ట్ సెట్టింగ్. when-changed ఏదైనా అప్‌డేట్ అప్లై చేసిన తర్వాత రీబూట్ చేస్తుంది. when-needed అనేది needs-restarting -r వెనుక ఉన్న తనిఖీ ద్వారా ఏదైనా కోర్ ప్యాకేజీ భర్తీ చేయబడిందని నిర్ధారించుకున్నప్పుడు మాత్రమే రీబూట్ చేస్తుంది; చాలా మంది సింగిల్-సర్వర్ యజమానులు కోరుకునేది ఇదే, దీనిని వారు ఎంచుకున్న టైమర్ విండోతో జత చేయవచ్చు. డిఫాల్ట్ reboot_command సెట్టింగ్, లాగిన్ అయి ఉన్న వినియోగదారులకు shutdown ద్వారా ఐదు నిమిషాల ముందుగానే హెచ్చరికను పంపుతుంది, మీరు ఈ సమయాన్ని పెంచుకోవచ్చు.

దీనిని ఆన్ చేసే ముందు రెండు విషయాలను ఖాయం చేసుకోండి. మీరు ఆధారపడే ప్రతి సేవ బూట్ సమయంలో స్వయంచాలకంగా ప్రారంభం కావాలి, ఇది సాధారణంగా మాన్యువల్‌గా ప్రారంభించిన Docker Compose stack విషయంలో లోపంగా ఉంటుంది. అలాగే, మీ ప్రొవైడర్ నుండి కన్సోల్ లేదా రెస్క్యూ యాక్సెస్ ఉండాలి, ఎందుకంటే బూట్ కాని కెర్నల్‌ను SSH ద్వారా సరిచేయలేము. ఈ రెండింటిలో ఏది లేకపోయినా, reboot = never సెట్టింగ్‌నే ఉంచి, జర్నల్‌ను పరిశీలించిన తర్వాత మీరే స్వయంగా రీబూట్ చేయండి.

Rocky, AlmaLinux మరియు CentOS Stream: వీటి మధ్య తేడాలు

Rocky 9 మరియు AlmaLinux 9 లలో పైన పేర్కొన్నవన్నీ ఒకేలా ఉంటాయి, కాన్ఫిగరేషన్ పాత్ మరియు యూనిట్ పేర్లు కూడా మారవు. ఈ రెండూ errata ను ప్రచురిస్తాయి, కాబట్టి upgrade_type = security ఫిల్టర్ చేయడానికి డేటాను కలిగి ఉంటుంది.

CentOS Stream ఒక మినహాయింపు, ఇది కొంచెం కష్టమైనది. Stream రిపోజిటరీలలో updateinfo.xml ఉండవు, కాబట్టి సెక్యూరిటీ ఫిల్టర్ ఏ ఫలితాన్ని చూపదు మరియు ప్రతి రన్ No security updates needed అని రిపోర్ట్ చేస్తుంది. Stream పై, upgrade_type = default ఉపయోగించండి మరియు అన్ని అప్‌డేట్‌లను స్వీకరించడానికి సిద్ధపడండి. Stream అనేది RHEL కంటే ముందు ఉంటుంది, కాబట్టి Rocky లేదా AlmaLinux తో పోలిస్తే Stream బాక్స్‌లో సెట్టింగ్‌లు తరచుగా మారుతుంటాయి.

Rocky 10 మరియు AlmaLinux 10 లు DNF5 కి మారాయి, ఇది పేర్లను మారుస్తుంది. అప్‌స్ట్రీమ్ DNF5 డాక్యుమెంటేషన్ ప్రకారం టైమర్ పేరు dnf5-automatic.timer, డిఫాల్ట్ సెట్టింగ్‌లు /usr/share/dnf5/dnf5-plugins/automatic.conf లో ఉంటాయి మరియు మీ మార్పులు /etc/dnf/automatic.conf లో ఉంటాయి. ఇది download_updates ను 'no' కి బదులుగా 'yes' కి డిఫాల్ట్ చేస్తుంది మరియు upgrade_type గా distro-sync ను జోడిస్తుంది. అడ్వైజరీ క్వెరీ కోసం dnf advisory list ఉపయోగించాలి, updateinfo ను అలియాస్‌గా ఉంచారు. వెర్షన్ 9 కోసం రాసిన గైడ్‌ల నుండి ప్యాకేజీ లేదా యూనిట్ పేర్లను కాపీ చేసే ముందు, మీ సిస్టమ్‌లో ఏ వెర్షన్ ఇన్‌స్టాల్ అయిందో నిర్ధారించుకోండి:

dnf list --available '*automatic*'
systemctl list-unit-files '*automatic*'

ఈ అంశంపై ప్రచురించబడిన అనేక గైడ్‌లు ఇప్పటికీ Rocky 8 కి మాత్రమే పరిమితమై ఉన్నాయి. ఆ గైడ్‌లు రాసినప్పటి నుండి ఆప్షన్లు పెరిగాయి, కాబట్టి పాత ఆర్టికల్‌ను నమ్మే బదులు మీ బాక్స్‌లోని కామెంట్ చేయబడిన ఫైల్‌ను స్వయంగా తనిఖీ చేయండి.

వైఫల్య రీతులు మరియు మీకు కనిపించే స్ట్రింగ్‌లు

ఏదీ రన్ అవ్వడం లేదు. systemctl list-timers dnf-automatic.timer ఖాళీ పట్టికను ప్రింట్ చేస్తుంది మరియు systemctl is-enabled dnf-automatic.timer disabled అని ప్రింట్ చేస్తుంది. ప్యాకేజీ ఇన్‌స్టాల్ చేయబడింది, కానీ టైమర్ ఇన్‌స్టాల్ కాలేదు.

జాబ్ రన్ అవుతుంది కానీ ఏదీ ఇన్‌స్టాల్ చేయదు. జర్నల్‌లో No security updates needed, but 3 updates available ఉంటుంది. సెక్యూరిటీ ఫిల్టర్ దేనినీ మ్యాచ్ చేయలేదు, ఎందుకంటే పెండింగ్‌లో ఉన్న వాటికి ఎటువంటి అడ్వైజరీ లేదు లేదా రిపోజిటరీ ఎటువంటి అడ్వైజరీ డేటాను ప్రచురించలేదు.

ఒక సెట్టింగ్ పట్టించుకోనట్లు కనిపిస్తుంది. DNF, automatic.conf లో తెలియని ఆప్షన్‌ను డీబగ్ లెవల్‌లో లాగ్ చేస్తుంది, ఆపై డిఫాల్ట్ సెట్టింగ్‌ను ఉపయోగిస్తుంది. కాబట్టి తప్పుగా స్పెల్లింగ్ ఉన్న కీ ఏ మార్పు చేయదు మరియు ఎవరినీ హెచ్చరించదు. apply_update = yes అని రాసినా, apply_updates అనేది no వద్దే ఉంటుంది, కాబట్టి బాక్స్ ఎప్పటికీ డౌన్‌లోడ్ అవుతూనే ఉంటుంది కానీ ఏదీ ఇన్‌స్టాల్ చేయదు. ఏదైనా ఎడిట్ చేసిన తర్వాత, sudo systemctl start dnf-automatic.service రన్ చేయండి మరియు ఫైల్‌ను నమ్మే బదులు జర్నల్‌ను చదవండి.

జాబ్ రోజుకు రెండుసార్లు రన్ అవుతుంది. రెండు టైమర్లు ఎనేబుల్ చేయబడి ఉన్నాయి. systemctl list-unit-files 'dnf-automatic*' ఏవి ఎనేబుల్ అయ్యాయో చూపిస్తుంది, మరియు అదనపు టైమర్లు మీ కాన్ఫిగరేషన్ ఫైల్‌ను అధిగమించే ఫ్లాగ్‌లను పంపుతాయి.

మెయిల్ ఏదీ రావడం లేదు. email ఎమిటర్ కోసం పోర్ట్ 25 వద్ద ఏదీ వినడం లేదు (listening), లేదా send_error_messages ఇంకా no గానే ఉంది మరియు రిపోర్ట్ చేయడానికి తగినంత ముఖ్యమైన విషయం కేవలం ఒక ఎర్రర్ మాత్రమే.

ప్యాచ్ చేసిన సర్వీస్ ఇంకా పాత వెర్షన్‌నే చూపిస్తుంది. డిస్క్‌లోని ఫైల్ కొత్తది, కానీ మెమరీలోని ప్రాసెస్ పాతది. dnf needs-restarting -s రీస్టార్ట్ చేయాల్సిన సర్వీసుల పేర్లను తెలియజేస్తుంది.

FAQ

Rocky Linux లో dnf-automatic కేవలం security updates మాత్రమే ఇన్‌స్టాల్ చేస్తుందా?

మీరు upgrade_type = security ను /etc/dnf/automatic.conf లో సెట్ చేసినప్పుడు మరియు మీ repositories errata metadata ను ప్రచురించినప్పుడు మాత్రమే ఇది సాధ్యమవుతుంది. Rocky Linux మరియు AlmaLinux రెండూ వీటిని ప్రచురిస్తాయి, కాబట్టి ఈ ఫిల్టర్ సరిపోలే advisories ను గుర్తిస్తుంది. డిఫాల్ట్‌గా upgrade_type = default సెట్ చేయబడి ఉంటుంది, ఇది apply_updates = yes జరిగినప్పుడు అందుబాటులో ఉన్న అన్ని updates ను ఇన్‌స్టాల్ చేస్తుంది.

"No security updates needed, but 3 updates available" అని dnf-automatic ఎందుకు చూపిస్తుంది?

Repository నుండి updateinfo.xml ను చదవడం ద్వారా ఏవి security updates అని DNF నిర్ణయిస్తుంది; ప్రతి advisory లో దానికి సంబంధించిన ప్యాకేజీల జాబితా ఉంటుంది. ఈ metadata లేనప్పుడు లేదా పాతబడినప్పుడు, security ఫిల్టర్ ఏమీ గుర్తించదు, కానీ సాధారణ updates పెండింగ్‌లో ఉంటాయి, దీనివల్ల ఆ సందేశం కనిపిస్తుంది. CentOS Stream లో errata ఉండదు కాబట్టి ఇది సహజం. Rocky లేదా AlmaLinux లో అయితే, dnf updateinfo list --security ను dnf check-update తో పోల్చి చూసి, మీ metadata తాజాగా ఉందో లేదో తనిఖీ చేయండి.

Kernel update తర్వాత dnf-automatic నా సర్వర్‌ను reboot చేస్తుందా?

మీరు కోరితే తప్ప ఇది చేయదు. reboot ఆప్షన్ డిఫాల్ట్‌గా never గా ఉంటుంది. reboot = when-needed ను సెట్ చేస్తే, dnf needs-restarting -r వెనుక ఉన్న తనిఖీ ద్వారా kernel లేదా glibc వంటి కోర్ ప్యాకేజీలు బూట్ తర్వాత రీప్లేస్ అయ్యాయని తెలిస్తేనే reboot అవుతుంది. reboot = when-changed ఏదైనా update జరిగిన తర్వాత reboot చేస్తుంది. రెండూ reboot_command ను ఉపయోగిస్తాయి, ఇది డిఫాల్ట్‌గా shutdown -r +5 గా ఉండి, లాగిన్ అయిన వినియోగదారులకు హెచ్చరిక సందేశాన్ని పంపుతుంది.

dnf-automatic రన్ అయ్యే సమయాన్ని ఎలా మార్చాలి?

sudo systemctl edit dnf-automatic.timer ను రన్ చేసి, ఖాళీ OnCalendar= లైన్‌తో కూడిన [Timer] సెక్షన్‌ను జోడించి, ఆపై మీ సమయాన్ని ఇవ్వండి (ఉదాహరణకు OnCalendar=*-*-* 03:30). ఖాళీ లైన్ తప్పనిసరి, ఎందుకంటే OnCalendar విలువలు పేరుకుపోతాయి; అది లేకపోతే డిఫాల్ట్‌గా ఉన్న 06:00 సమయంతో పాటు మీరు ఇచ్చిన సమయం కూడా యాడ్ అవుతుంది. systemctl list-timers dnf-automatic.timer తో తనిఖీ చేసి NEXT కాలమ్‌ను చూడండి.

ప్యాచింగ్ చేసుకునే సర్వర్‌ను నేను ఇంకా పర్యవేక్షించాలా?

అవును. dnf-automatic ప్యాకేజీలను మాత్రమే ఇన్‌స్టాల్ చేస్తుంది. ఇది daemons ను రీస్టార్ట్ చేయదు, మరియు మీరు చదివే emitter ను emit_via లో పేర్కొనకపోతే మీకు ఎటువంటి సమాచారం అందదు. కనీసం emit_via ను stdio కి సెట్ చేయండి, వైఫల్యాలను కూడా తెలుసుకోవడానికి send_error_messages ను ఆన్ చేయండి, మరియు ప్యాచ్ విండో తర్వాత పాత కోడ్‌తో నడుస్తున్న సేవలను గుర్తించడానికి dnf needs-restarting -s ను రన్ చేయండి.