Puncte:4

Prima dată crontab. Este acest lucru viabil?

drapel kr

Am încercat să fac și eu ceva „codificare” și asta am venit cu:

00 02 * * 1,3,5 sudo shutdown -r
@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start site

Este esențial ca atât rețeaua, cât și site-ul web să funcționeze și să funcționeze după repornire. De asemenea, este 1,3,5 parțial viabil? Acest lucru ar reporni mașina pe Lu, Noi și Fr? Și ar fi bine/inteligent să programăm o repornire după actualizare/upgrade?

drapel jp
Dan
Nu am nicio afiliere cu site-ul, dar folosesc acest site des pentru a-mi valida „preferințele” crontab: https://crontab.guru/
drapel cn
@dan unul dintre multele mele marcaje ;-)
drapel in
Ce mai exact încerci să faci? Știu ce face fiecare linie, dar care este obiectivul tău? De ce omd nu este un serviciu? Ce rost are să repornești sistemul? Actualizările nesupravegheate îmbunătățesc sistemul dumneavoastră în mod fiabil pentru upgrade-uri de securitate (sau alte upgrade-uri dacă ați setat acest lucru).
Andrej Podzimek avatar
drapel cn
Aș sugera cu tărie să folosiți cronometre `systemd`. Învățarea „crontab” în 2021 este de o utilitate limitată, cu excepția cazului în care este un proiect de un muzeu de istorie a computerelor.
Puncte:8
drapel cn

Nu.

  • Nu utilizați sudo în cron. utilizați root crontab dacă aveți nevoie de acces la comenzile care necesită root
  • Folosiți întotdeauna căile absolute când vă aflați în cron.
  • Și nu ar trebui să actualizați un server --production-- nesupravegheat; faci asta manual. Cool dacă este un desktop sau dacă este un server de testare/staging. Experiența mea personală provine din utilizarea serverelor CLOUD: orice merge prost în timpul unei reporniri este fatal.

Dar dacă chiar vrei să faci asta, aș adăuga următoarele 3...

  • adăugați logare la comenzile „apt”.
  • adăugați o metodă pentru a vă trimite prin e-mail ceea ce a fost tipărit în timpul comenzilor apt.
  • înainte de „apt”, ar trebui să faceți și o copie de rezervă completă a sistemului care este stocată în afara serverului. Când actualizarea/upgrade-ul merge prost și vă afectează sistemul (99 din 100 nu, dar nu doriți ca acel 1 să se întâmple ;)) este mai important ca sistemul dumneavoastră să revină la ultima stare de lucru decât să remediați problema.

sleep 60 && sudo netplan apply && sleep 15 && sudo omd start site

Acest lucru nu ar trebui să fie necesar. Aș aranja asta cu un „serviciu”. În acest fel, puteți crea un lanț de comenzi care se așteaptă unul pe celălalt. „sleep 60” și „sleep 15”... ce dacă ar fi trebuit să aibă 61 și 16? Serviciile ar rezolva această problemă pentru dvs.

De asemenea, partea 1,3,5 este viabilă? Acest lucru ar reporni mașina pe Lu, Noi și Fr?

După cum a spus Dan într-un comentariu: crontab.guru cu regulile crontab introduse, afirmă „La 02:00 luni, miercuri și vineri”.

Dacă nu există niciun motiv pentru o repornire, nu l-aș executa. Am servere care rulează de peste 5 ani în care o dată la fiecare timp curăț problemele de memorie și altele asemenea :+

raj avatar
drapel cn
raj
Cât despre mailing, este suficient ca serverul să aibă un MTA instalat (ceea ce ar trebui să fie normal pentru un server - cel puțin este în Debian, nu știu cum în Ubuntu Server pentru că am folosit doar versiuni dekstop de Ubuntu). Apoi cron va trimite prin e-mail automat orice ieșire către root.
drapel cn
Este probabil același lucru pe Ubuntu. Știu că primesc e-mailuri de la serverele noastre, dar nu a trebuit niciodată să mă aprofundez în cum :D
Artur Meinild avatar
drapel vn
Trebuie să instalați și să configurați un MTA (implicit este `postfix`) pe server, iar corespondența internă funcționează „din cutie”. Cu toate acestea, dacă ar trebui să trimită la o adresă de e-mail externă, aceasta trebuie configurată cu DKIM etc. pentru a preveni marcarea ca neîncredere și/sau spam.
SomeDude avatar
drapel kr
Pentru comenzile absolute: există o modalitate ușoară de a găsi directoarele în care se află comenzile? Am încercat pagina de manual și m-am uitat prin bin & sbin, dar nu sunt sigur dacă pot avea încredere în propria mea cercetare... Apt-ul pe care l-am găsit în /bin, de exemplu... Mulțumesc pentru ideea cu serviciile, voi arunca o privire la asta.
Artur Meinild avatar
drapel vn
Folosiți comanda „care”, adică „care apt”.
terdon avatar
drapel cn
De fapt, folosiți `type`, nu `which`, deoarece `type` va rezolva, de asemenea, aliasuri, funcții etc. Vedeți [De ce nu folosiți "care"? Ce să folosești atunci?](https://unix.stackexchange.com/q/85249)
drapel in
„Și nu ar trebui să actualizați un server --producție-- nesupravegheat” Actualizările de securitate nu sunt de obicei o problemă, care este implicit pentru upgrade-urile nesupravegheate.
Puncte:8
drapel vn

Un comentariu general: În loc de a folosi sudo în utilizator crontab, luați în considerare introducerea acestor comenzi în fișierul rădăcină crontab, astfel încât să poată rula fără sudo.

În ceea ce privește cele 3 linii crontab:

@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y

Este perfect viabil de făcut apt-get update și apt-get upgrade -y în acest fel. (Nu este destinat unui server de producție și cu condiția să înțelegeți implicațiile actualizărilor nesupravegheate.)

00 02 * * 1,3,5 sudo shutdown -r

Nu cred că este necesar să reporniți de 3 ori pe săptămână. Eu însumi folosesc acest script de repornire foarte simplu: (numit auto-reboot.sh)

#!/bin/bash

[[ -f /var/run/reboot-required.pkgs ]] && repornire

Așa că rulez acest script cu cron săptămânal, după scriptul meu de actualizare și curățare. Repornește doar dacă mașina trebuie repornită (dacă /var/run/reboot-required.pkgs exista). (În nou, acesta nu este destinat unui server de producție.)

@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start site

Nu înțeleg de ce ar trebui să fugi netplan se aplică la repornire.

De asemenea, o modalitate mai fiabilă de a porni un serviciu care depinde de un alt serviciu sau condiție (de exemplu, rețea) este crearea unui sistem systemd. .serviciu a face treaba. Există mai multe tutoriale pentru aceasta (1, 2), la care v-aș recomanda să aruncați o privire.

drapel cn
Și în cazul în care cineva vrea să știe: noi le-am scris pe acestea 2 independent unul de celălalt și într-adevăr am scris în mare măsură aceleași lucruri. M-a făcut să zâmbesc :-) Nu pot fi singurul vot pozitiv :(
Artur Meinild avatar
drapel vn
Da, același lucru pentru mine - în general același mesaj, dar acoperă câteva nuanțe subtile diferite. ;-)
SomeDude avatar
drapel kr
Oh, ok, multumesc mult... Problema cu mașina este că continuă să înghețe după aproximativ 5 zile de funcționare. Și am avut deja de 3 ori că setările de rețea au fost oprite după repornire și a trebuit să aplic din nou netplanul. Așa că m-am gândit că aș putea reporni periodic computerul, deoarece hardware-ul cel mai probabil nu este capabil să ruleze 24/7.
terdon avatar
drapel cn
@SomeDude pare că ai o problemă serioasă pe undeva. Laptop-ul meu este capabil să ruleze 24 de ore din 24, 7 zile pe zi, nu îmi imaginez că hardware-ul dvs. nu poate. Verificați-vă memoria RAM și schimbați utilizarea sau puneți o nouă întrebare și vă putem ajuta să investigați.
SomeDude avatar
drapel kr
@terdon Am folosit un [HP Prodesk 600 G3 mini] dezafectat(https://support.hp.com/us-en/document/c05364047) cu un i5-7500T și 8GB DDR4 care are acum 4 ani... am putea să-l intensifice și să creeze un VM pe serverele noastre live, dar în scopuri de testare am folosit acest computer. Pentru a vă familiariza cu software-ul și altele. Există o modalitate ușoară de a verifica dacă este o problemă hardware?
Artur Meinild avatar
drapel vn
[Aici](https://askubuntu.com/questions/1038701/how-do-i-check-system-health) este un thread cu câteva informații despre testarea hardware-ului. De asemenea, încercați să căutați eticheta [hardware-test](https://askubuntu.com/questions/tagged/hardware-test).
Puncte:2
drapel in

Sunt de acord cu toate celelalte răspunsuri, dar permiteți-mi să adaug asta...

Este periculos să alergi apt-get nesupravegheat. O mână de aplicații pun întrebări în timpul upgrade-urilor și instalărilor de upgrade, iar altele necesită introducerea de la tastatură dacă le puneți în fundal și se vor bloca, chiar dacă nu este necesară introducerea de la tastatură.

Încercarea de a rula apt-get în fundal astfel este o modalitate bună de a ajunge la un sistem în care actualizările sunt întrerupte și trebuie configurate și reluate manual.

Se presupune că procesul de upgrade nesupravegheat instalează automat actualizări critice fără intervenție.

Dacă mașina dvs. se prăbușește, trebuie să investigați de ce. Poate rulați diagnosticarea hardware peste noapte. Verificați jurnalele în jurul orei accidentului. Poate verificați dacă ceva îl epuizează din memorie și provoacă blocarea mașinii. etc...

De asemenea, trebuie să fugi autoeliminare apt ocazional sau actualizările kernelului se vor colecta până când discul dumneavoastră se umple.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.