Re: Mail z crona neodchází
Petr Vileta
petr na practisoft.cz
Neděle Červen 15 17:06:52 CEST 2003
> na SuSE Linuxu 8.0 spouštím z crona shell skript, který vypne mysql
> (/etc/init.d/mysql stop), zazálohuje databáze a mysql opět spustí
> (/etc/init.d/mysql start). Skript je napsán tak, že vypisuje (echo)
hlášení
> o prováděných činnostech a jejich výsledku.
Ja mam RH 7.3, ale "/etc/init.d/mysql stop" je nejake divne, ne? Ja pouzivam
"/etc/init.d/mysqld stop". Podle me je
mysql pouze klient, kdezto mysqld je demon.
> Cron má nastavenu e-mailovou adresu, kam odeslat výstup skriptu.
> Problém je v tom, že žádný e-mail nedojde. Provede-li se (třeba ručně)
> restart mysql, dotyčný e-mail okamžitě dojde tj. někde to visí.
No ja pouzivam na zalohovani databazi tenhle svuj vytvor, a nemusim ani
stopnout demona a zalohuje to uplne fsechno:
---CUT---
#!/usr/bin/perl
use CGI qw(:standard);
use DBI;
$pathcfg = "/var/backup/";
$pathbkp = "/var/backup/MySQL/";
open STDERR,">&STDOUT";
print "---------Backup databazi---------\n";
$host= "localhost";
$myddb="";
$opt_user="root";
$opt_password="root_passwd";
$dbh = DBI->connect("DBI:mysql:$mydb:$host",$opt_user,$opt_password) or die
"Can't connect anything: $DBI::errstr\n";
$sth=$dbh->prepare("show databases");
$sth->execute() or print "No show databases\n";
$dbfs=$sth->fetchall_arrayref([0]);
$sth->finish;
for $d (0 .. $#{$dbfs})
{
$dbf=$dbfs->[$d][0];
next if($dbf eq 'mysql');
$dir=$pathbkp . $dbf;
if(stat($dir)*1==0)
{
mkdir $dir;
chown((getpwnam('mysql'))[2,3],$dir);
}
$sth=$dbh->do("use $dbf");
$sth=$dbh->prepare("show tables");
$sth->execute() or print "No show tables from database $dbf\n";
$tables=$sth->fetchall_arrayref([0]);
$sth->finish;
for $t (0 .. $#{$tables})
{
$tbl=$tables->[$t][0];
$sth=$dbh->prepare("backup table $tbl to \'$dir\'");
$sth->execute() or print "No backup table $t to $dir\n";
$row=$sth->fetchrow_arrayref;
print "$row->[0] $row->[2] $row->[3]\n";
$sth->finish;
}
}
$rc=$dbh->disconnect;
print "---------Backup databazi konec---------\n";
---CUT---
--
Petr Vileta
http://www.zivnosti.cz
http://www.practisoft.cz
Další informace o konferenci Linux