Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di JJ
    Registrato dal
    Feb 2000
    Messaggi
    47

    data e ora in script per CronJob

    Ciao a tutti

    chiedo a voi un saggio consiglio (sono programmatore PHP, non ho mai visto righe scritte in Perl ).

    HO il seguente script che viene richiamato con cronJob ogni 10 giorni, e serve per effettuare un backup del db mysql:
    codice:
    #!/usr/bin/perl
    open(CONF, "/etc/webmin/miniserv.conf");
    while(<CONF>) {
    $root = $1 if (/^root=(.*)/);
    }
    close(CONF);
    $ENV{'WEBMIN_CONFIG'} = "/etc/webmin";
    $ENV{'WEBMIN_VAR'} = "/var/webmin";
    chdir("$root/mysql");
    exec("$root/mysql/backup.pl", @ARGV);
    il file di config presente nella stessa directory di questo script č
    codice:
    start_cmd=/etc/rc.d/init.d/mysqld start
    access=*: *
    mysqlimport=/usr/bin/mysqlimport
    style=0
    date_subs=0
    perpage=25
    stop_cmd=
    mysqlshow=/usr/bin/mysqlshow
    mysql=/usr/bin/mysql
    mysqldump=/usr/bin/mysqldump
    nodbi=0
    add_mode=0
    mysql_libs=
    blob_mode=0
    mysqladmin=/usr/bin/mysqladmin
    sock=/var/lib/mysql/mysql.sock
    port=
    host=
    login=root
    pass=flvt01cs
    backup_drop_=0
    backup_before_=
    backup_=/home/mysql/dbBackup
    backup_tables_=
    backup_after_=
    backup_where_=
    Sarebbe molto bello se riuscissi a far creare una cartella per ogni volta che fa il backup, nominandola con il giorno e mese in cui esegue l'operazione.
    Con lo script presente ogni volta che avviene un backup, il sistema sovrascrive le precedenti copie.

    Mi piacerebbe ad esempio che nella directory principale in cui fa il backup ci siano delle sottocartelle nominato per giornomese contenenti i relativi file.

    ad esempio
    backup
    - 20050101
    - 20050110
    - 20050120
    ecc...

    Grazie 1000
    JJ
    "Mi preoccupo continuamente della mia bambina e di Internet, anche se č ancora troppo piccola per potersi collegare. Ecco cosa mi preoccupa. Mi preoccupa il fatto che fra 10 o 15 anni, lei verrā da me e mi dirā "Papā, dov'eri quando hanno tolto la libertā di parola in Internet?'"
    --Mike Godwin, Electronic Frontier Foundation

  2. #2
    Non č difficile, comunque bisogna vedere il codice dello script backup.pl
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Utente di HTML.it L'avatar di JJ
    Registrato dal
    Feb 2000
    Messaggi
    47
    Ecco qui:
    codice:
    #!/usr/bin/perl
    # backup.pl
    # Called by cron to backup a database
    
    $no_acl_check++;
    require './mysql-lib.pl';
    
    if ($ARGV[0] eq "--all") {
            $all = 1;
            @dbs = &list_databases();
            }
    else {
            $ARGV[0] || die "Missing database parameter";
            @dbs = ( $ARGV[0] );
            }
    
    $ex = 0;
    foreach $db (@dbs) {
            if ($all) {
                    $file = &date_subs("$config{'backup_'}/$db.sql");
                    }
            else {
                    $file = &date_subs($config{'backup_'.$db});
                    }
            if (!$file) {
                    print STDERR "No backup file set for database $db\n";
                    exit(1);
                    }
            $drop = $config{'backup_drop_'.$db} ? "--add-drop-table" : "";
            $where = $config{'backup_where_'.$db} ?
                    "\"--where=".$config{'backup_where_'.$db}."\"" : "";
            if (&supports_quoting()) {
                    $quoting = " --quote-names";
                    }
            @tables = split(/\s+/, $config{'backup_tables_'.$db});
            $tables = join(" ", map { quotemeta($_) } @tables);
    
            &execute_before($db, STDOUT, 0, $file, $all ? undef : $db);
            unlink($file);
            $out = &backquote_logged("$config{'mysqldump'} $authstr $drop $where $quoting ".quotemeta($db)." $tables 2>&1 >$file");
            if ($? || $out) {
                    print "Backup of database $db to file $file failed:\n";
                    print $out;
                    $ex = 1;
                    }
            &execute_after($db, STDOUT, 0, $file, $all ? undef : $db);
            }
    exit($ex);
    "Mi preoccupo continuamente della mia bambina e di Internet, anche se č ancora troppo piccola per potersi collegare. Ecco cosa mi preoccupa. Mi preoccupa il fatto che fra 10 o 15 anni, lei verrā da me e mi dirā "Papā, dov'eri quando hanno tolto la libertā di parola in Internet?'"
    --Mike Godwin, Electronic Frontier Foundation

  4. #4
    Ciao,

    subito dopo di:

    $ex = 0;

    per prima cosa devi creare in modo dinamico il nome per la directory. per fare questo puoi usara la funzione

    localtime(time)

    di Perl o una comoda libreria per formattare la data in Perl che puoi scaricare dal mio sito.

    Poi crei la directory con:

    mkdir("xxxxxxx");

    dove al posto di xxxxx metti la data formattata prima.

    Infine devi dire allo script allo scipt di inserire i file nalla directory creata prima manipolando il codice:

    $out = &backquote_logged("$config{'mysqldump'} $authstr $drop $where $quoting ".quotemeta($db)." $tables 2>&1 >$file");

    di preciso non so dirti in quale variabile, forse $where, non conoscendo la libraria che č chiamata all'inizio.

    Ciao.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Utente di HTML.it L'avatar di JJ
    Registrato dal
    Feb 2000
    Messaggi
    47
    Grazie mille

    Ci provo, anche se non so cosa ne uscirā dato che non ho mai maneggiato Perl

    Bye
    JJ
    "Mi preoccupo continuamente della mia bambina e di Internet, anche se č ancora troppo piccola per potersi collegare. Ecco cosa mi preoccupa. Mi preoccupa il fatto che fra 10 o 15 anni, lei verrā da me e mi dirā "Papā, dov'eri quando hanno tolto la libertā di parola in Internet?'"
    --Mike Godwin, Electronic Frontier Foundation

  6. #6
    E' abbastanza simile a PHP, comunque se hai specifici problemi posta e vediamo.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.