tiistai, 18. syyskuuta 2012

"Hei maailma" kolmella kielellä ja varmuuskopiointiskripti

Tavoitteenani oli saada "Hei maailma" toimimaan kolmella eri kielellä. Toinen tavoitteeni oli tehdä täysin automaattinen, syklinen varmuuskopiointiskripti wikilleni. Aloitin projektin 19.9. noin klo 07.05.

Perl

Käytin ohjenuoranani Troubleshootersin Hello World -ohjetta. Aloitin projektin (7.10.) selvittämällä, onko perl-tulkki jo asennettuna koneelleni, ja jos kyllä, missä on ajamiseen käytettävä binääri.
whereis perl
perl: /usr/bin/perl /etc/perl /usr/lib/perl /usr/bin/X11/perl /usr/share/perl /usr/share/man/man1/perl.1.gz
Loin hello.pl-tiedoston.
 nano -w hello.pl
Loin seuraavanlaisen tiedoston.
#!/usr/bin/perl
print "Hei maailma."\n
Muutin tiedoston ajettavaksi ja ajoin sen onnistuneesti.
$ chmod ugo+x hello.pl 
$ ./hello.pl 
Hei maailma.

 C++

Oppaanani käytin Ubuntu Geekin artikkelia, joka käsittelee C++:n toimivuuden testaamista Ubuntulla. Asensin (7.20) Ubuntuuni paketin build-essential. Sitten loin tiedoston hello.c.
sudo nano hello.c
 Tiedoston sisälltö oli seuraavanlainen:
#include <stdio.h>
int main()
{
printf("Hello, world\n");
return 0;
}
 Tämän jälkeen käänsin objektitiedoston ja binäärin.
 cc -c hello.c && cc -o hello hello.c
Sitten ajoin binäärin.
$ ./hello
Hello, world
Koska tuloste oli "Hello, world", totesin onnistuneeni.

Ruby

Käytin selkänojanani About.com-sivuston artikkelia Rubyn perusteista. Aloitin (07.35) asentamalla Ruby-ajoympäristön vaatimat paketit.
sudo apt-get install ruby1.8 ruby1.8-dev irb rdoc ri
Loin hello.rb-tiedoston (nano -w hello.rb), jolla oli seuraavanlainen sisältö:
#!/usr/bin/ruby
puts "Hello world!"
Sitten asetin tiedostolle ajo-oikeudet ja ajoin sen.
$ chmod ugo+x hello.rb && ./hello.rb
Hello world!

Mission accomplished!

Varmuuskopiointiskriptin luominen

http://www.apologetiikkawiki.fiPäätin luoda ylläpitämälleni ApologetiikkaWikille uuden varmuuskopiointiskriptin. Päädyin tekemään skriptistä kolme eri varianttia, joista ensimmäinen tarjoaa kannalle 24 palautuspistettä edellisen 24 tunnin ajalta. Toinen tarjoaa 7 palautuspistettä viimeisen viikon ajalta ja kolmas tarjoaa palautuspisteen per kuukausi. Kuukausittain tehtyjä varmuuskopioita ei ylikirjoiteta. Skriptit ajetaan cronilla (cron.hourly, cron.daily ja cron.monthly).

#!/bin/bash
#/etc/cron.hourly
mysqldump -u blaa --password=blaa blaadb -c > /tmp/hourly_backup && tar cjvf /backup/dbdumps/hourly/apologetiikkawiki-hourly-wikidb-$(date +%H).sql.bz /tmp/hourly_backup

#!/bin/bash
#/etc/cron.daily
mysqldump -u blaa --password=blaa blaadb -c > /tmp/daily_backup && tar cjvf /backup/dbdumps/daily/apologetiikkawiki-daily-wikidb-$(date +%d).sql.bz /tmp/daily_backup

#!/bin/bash
#/etc/cron.monthly
mysqldump -u blaa --password=blaa blaadb -c > /tmp/monthly_backup && tar cjf /backup/dbdumps/monthly/apologetiikkawiki-monthly-wikidb-$(date +%Y-%m-%d).sql.bz /tmp/monthly_backup

Raportissa mainitut tiedostot

Ei kommentteja:

Lähetä kommentti