<?php /******************************************* /* Programm cron_job.php4 /* Cron-skript to download data from computer, /* extract it and save it into database /* (c) Copyright 2002, Jens Bierkandt /* e-mail: jens@bierkandt.org /* Entstanden im Rahmen meiner Diplomarbeit /******************************************* */ // Timeout to ftp-connection is 90 sec error_reporting(63); // 0 = none, 63 = full include("/home/schtorch/public_html/diplom/config.php4"); include("./convert2mysql.php4"); // Get computer details from database $db = mysql_connect($hostname, $username, $password); mysql_select_db($database, $db); $result = mysql_query("SELECT *, DECODE(passwd,\"$secret_key\") FROM `admin`", $db); $i = 0; while ($row = mysql_fetch_row($result)) { echo mysql_error($db); $name[$i] = $row[0]; $computer[$i] = $row[1]; $table[$i] = $row[2]; $phone[$i] = $row[3]; $protocol[$i] = $row[4]; $user[$i] = $row[5]; $passwd[$i] = $row[7]; $i++; } $fp_log = fopen("/home/schtorch/public_html/diplom/diplom.log", "a+"); for ($i = 0; $i < sizeof($name); $i++) { // connect to computer fputs($fp_log, date('Y-m-d H:i:s')." - Anwahl von ".$computer[$i]." mit ".$phone[$i]." ".$protocol[$i]." ".$user[$i]."\n"); system("/home/schtorch/diplom/mikehup1 pppconn.sh $phone[$i] $protocol[$i] $user[$i] $passwd[$i] &"); echo "Anwahl\n"; $a = time()+20; $b = time(); while ($b < $a) { $b = time(); } // check if connection exists $errstr = exec("ps --no-heading -C capipppd"); if ($errstr != "") { fputs($fp_log, date('Y-m-d H:i:s')." - Verbindung zu ".$computer[$i]." besteht\n"); // download via ftp $conn_id = 0; $conn_id = ftp_connect("192.168.14.10"); // login with username and password $login_result = ftp_login($conn_id, $user[$i], $passwd[$i]); // check connection if ((!$conn_id) || (!$login_result)) { fputs($fp_log, date('Y-m-d H:i:s')." - FTP-Verbindung zu ".$computer[$i]." NICHT erfolgreich\n"); break; } else { fputs($fp_log, date('Y-m-d H:i:s')." - FTP-Verbindung zu ".$computer[$i]." erfolgreich\n"); } // download the files $files = 0; $list = ftp_nlist($conn_id, "*.bz2"); if (isset($list[0])) { do { $download = ftp_get($conn_id, "backup/".$list[$files], $list[$files], FTP_BINARY); // check download status if (!$download) { fputs($fp_log, date('Y-m-d H:i:s')." - File-Download $list[$files] von ".$computer[$i]." NICHT erfolgreich\n"); } else { fputs($fp_log, date('Y-m-d H:i:s')." - File-Download $list[$files] von ".$computer[$i]." erfolgreich\n"); ftp_delete($conn_id, $list[$files]); } $files++; } while($files < sizeof($list)); } else fputs($fp_log, date('Y-m-d H:i:s')." - Keine Dateien auf ".$computer[$i]." zum herunterladen\n"); // close the FTP stream ftp_quit($conn_id); // close connection system("killall -HUP pppd"); fputs($fp_log, date('Y-m-d H:i:s')." - Verbindung beendet\n"); // unzip data shell_exec("cd /home/schtorch/diplom/backup && bunzip2 -k *.bz2"); fputs($fp_log, date('Y-m-d H:i:s')." - Entpacken erfolgreich beendet\n"); // backup all .bz files shell_exec("cd /home/schtorch/diplom/backup && mv *.bz2 /home/schtorch/diplom/safe"); // convert and save data into database $cmd = "cd /home/schtorch/diplom/backup && /bin/ls *.lst"; $fp_ls = popen($cmd, "r"); while ($file_name = trim(fgets($fp_ls, 100))) { $erg = convertFile("/home/schtorch/diplom/backup/$file_n ame"); fputs($fp_log, date('Y-m-d H:i:s')." - convert2mysql.php4: ".$erg); unlink("/home/schtorch/diplom/backup/$file_name"); } } else fputs($fp_log, date('Y-m-d H:i:s')." - Verbindung zu ".$computer[$i]." konnte nicht hergestellt werden\n"); fputs($fp_log, date('Y-m-d H:i:s')." - Ende der Skriptabarbeitung für ".$computer[$i]."\n\n"); echo "Ende $computer[$i]\n"; } fclose($fp_log); ?>