Gå til innhold

Kjøre emerge sync && emerge -u world


Anbefalte innlegg

Har en server med Gentoo som står på 24/7. Nå må jeg kjøre emerge sync && emerge -u world manuelt hver gang jeg skal oppdatere maskinen.

 

Hvordan får jeg den til å gjøre dette automatisk hver 48. time? Selvfølgelig med root-rettigheter. Eller en annen bruker son funker bra.

Lenke til kommentar
Videoannonse
Annonse

Siden dette kan være nyttig for alle og enhver Gentoo bruker, har jeg laget et

perl script som kan kjøres fra cron.

 

#!/usr/bin/perl -w
use POSIX qw(strftime);
#Define globals
my $from_email = "din\@epost.no";
my $to_email = "din\@epost.no";
my $subject = "Result of emerge -up world";
my $date = strftime "%a, %d %b %Y %H:%M:%S %Z", localtime;
my $sendmail = "/usr/sbin/sendmail";
my $command = "emerge sync && emerge -up world > world_output.txt";
my $contents = "";

#Run command and get the output
system ($command);
open(world, "world_output.txt")
   or die "Can not open file: $!\n";
while (<world>){
       $contents .= $_;
}

#Generate mail
my $randomvar = rand 9999;
my $msg_id = "<" . strftime("%Y%m%d-", localtime) . "$randomvar\@$ENV{HOSTNAME}>";

my $email = "From: $from_email\n";
$email .= "To: $to_email\n";
$email .= "Cc:\n";
$email .= "MIME-Version: 1.0\n";
$email .= "Message-ID: $msg_id\n";
$email .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$email .= "Date: $date\n";
$email .= "Subject: $subject\n";
$email .= "\n";
$email .= "$contents\n";

#Push the mail to sendmail for sending
my $sendmail_command = $sendmail . "-f $from_email < $email";
system( $sendmail_command)
       or die "Error sending mail...";
print "Mail sent :)";

 

Det som jeg tror er mest buggy med dette er nok sendmail kommandoen,

bruker ikke sendmail selv, så den delen er utestet. Ellers kjørte scriptet bra.

 

Vær grei, gi feedback om noe feiler.

 

..Hegga

Endret av hegga
Lenke til kommentar

Eg mistenkjer at det er unødvendig å blanda inn sendmail. Cron sender jo e-post heilt av seg sjølv, dersom kommandoen skriv noko som helst til standard-ut.

 

Du kan velja kva for e-postadresse cron skal senda til ved å setja variabelen MAILTO i crontab-fila. Sjå "man 5 crontab".

Lenke til kommentar

Høres svært lite lurt ut å kjøre en emerge -u world uten oppsyn. Jeg er glad i Gentoo og Portage, men det er ikke akkurat et intelligent pakkesystem. Du kan jo ende opp med å bryte binær-kompatibilitet under beina på programmer, uten at du selv oppdager det engang!

Hvis det er snakk om å gjøre dette av sikkerhetsmessige årsaker, er det nok bedre å melde deg på et par security-mailinglists, og oppgradere de pakkene som trengs, når det trengs. Det er min mening, i hvertfall.

Lenke til kommentar
Høres svært lite lurt ut å kjøre en emerge -u world uten oppsyn. Jeg er glad i Gentoo og Portage, men det er ikke akkurat et intelligent pakkesystem. Du kan jo ende opp med å bryte binær-kompatibilitet under beina på programmer, uten at du selv oppdager det engang!

Hvis det er snakk om å gjøre dette av sikkerhetsmessige årsaker, er det nok bedre å melde deg på et par security-mailinglists, og oppgradere de pakkene som trengs, når det trengs. Det er min mening, i hvertfall.

scriptet kan kjøre både -u og -up world alt etter hvor tøff du er.

 

..Hegga.

Lenke til kommentar
Høres svært lite lurt ut å kjøre en emerge -u world uten oppsyn. Jeg er glad i Gentoo og Portage, men det er ikke akkurat et intelligent pakkesystem. Du kan jo ende opp med å bryte binær-kompatibilitet under beina på programmer, uten at du selv oppdager det engang!

Hvis det er snakk om å gjøre dette av sikkerhetsmessige årsaker, er det nok bedre å melde deg på et par security-mailinglists, og oppgradere de pakkene som trengs, når det trengs. Det er min mening, i hvertfall.

Hva som er lite lurt med det ?

Fordi om cron har en egen mail funksjon, så _må_

ikke den brukes.

 

..Hegga

Lenke til kommentar
Fordi om cron har en egen mail funksjon, så _må_

ikke den brukes.

Nei, vil du skriva (og debugga) unødvendige 40-linjers skript, så skal ikkje eg stoppa deg... ;) Men det er gjerne ein fordel å læra seg standardmåten å gjera ting på.

Lenke til kommentar
Høres svært lite lurt ut å kjøre en emerge -u world uten oppsyn. Jeg er glad i Gentoo og Portage, men det er ikke akkurat et intelligent pakkesystem. Du kan jo ende opp med å bryte binær-kompatibilitet under beina på programmer, uten at du selv oppdager det engang!

Hvis det er snakk om å gjøre dette av sikkerhetsmessige årsaker, er det nok bedre å melde deg på et par security-mailinglists, og oppgradere de pakkene som trengs, når det trengs. Det er min mening, i hvertfall.

Hva som er lite lurt med det ?

Fordi om cron har en egen mail funksjon, så _må_

ikke den brukes.

 

..Hegga

Hva som er så lite lurt forklarer jeg jo en kvart cm lengre nede enn der jeg sier at det ikke er lurt...

Lenke til kommentar
Høres svært lite lurt ut å kjøre en emerge -u world uten oppsyn. Jeg er glad i Gentoo og Portage, men det er ikke akkurat et intelligent pakkesystem. Du kan jo ende opp med å bryte binær-kompatibilitet under beina på programmer, uten at du selv oppdager det engang!

Hvis det er snakk om å gjøre dette av sikkerhetsmessige årsaker, er det nok bedre å melde deg på et par security-mailinglists, og oppgradere de pakkene som trengs, når det trengs. Det er min mening, i hvertfall.

Hva som er lite lurt med det ?

Fordi om cron har en egen mail funksjon, så _må_

ikke den brukes.

 

..Hegga

Hva som er så lite lurt forklarer jeg jo en kvart cm lengre nede enn der jeg sier at det ikke er lurt...

Qoute feil.

Var ikke din post det svaret skulle på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...