Дата:2014-03-07
Такое не большое решение для проверки времени изменения файла с подключением по FTP
Задача достаточно простая - имеются 2 базы данных 1С в разных городах, между ними происходит обмен по FTP, через какое-то время.
Наша задача дать возможность пользователям, по их желанию просматривать через WEB все ли хорошо, а так же на основе этого можно создать скрипт с отправкой нам сообщения о том, что базы не обновляются на какой-либо стороне.
<?php
//Настройки подключения к FTP
$file1 = 'Message_001_002.zip';
$file2 = 'Message_002_001.zip';
$ftp_server = 'Serv_addr';
$ftp_user_name = 'ftp_username';
$ftp_user_pass = 'ftp_passw';
$port = '1021';
// Установка соединения
$conn_id = ftp_connect($ftp_server, $port);
// Вход с именем пользователя и паролем, а так же вызовом исключения
если неудача
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) or
die("Не удалось установить соединение с $ftp_server.
</br>Возможно сервер для обмена не работает или возникли
неполадки с Интернетом");
//Текущее время в Формате Unix
$now_time = date("U", time());
echo "Текущее время: $now_time";
echo "<br>";
// Получение времени модификации файла
$buff = ftp_mdtm($conn_id, $file1);
$buff2 = ftp_mdtm($conn_id, $file2);
if ($buff != -1) {
echo "Дата последней Выгрузки 1С из
<strong>Город А.</strong> $file1 : " .
date("F d Y H:i:s.", $buff);
} else {
echo "Не удалось выполнить mdtime";
}
//Время последнего изменения файла
$time_file = date("U" ,$buff);
echo "<br>";
echo "Время изменения файла Город А.: $time_file";
//Разница между текущим временем и временем посл изм файла
$diff_time=$now_time-$time_file;
echo "<br>";
echo "Разница во времени: $diff_time";
echo "<br>";
//Если текущее время больше на 30 минут времени последнего изменения
файла
if($diff_time >=1800){print "$file больше 30 минут не
изменялся";}
else {print "Все хорошо";}
?>
<br>
<?php
if ($buff2 != -1) {
echo "Дата последней Выгрузки 1С из
<strong>Город В.</strong> $file2 : " .
date("F d Y H:i:s.", $buff2);
} else {
echo "Не удалось выполнить mdtime";
}
$now_time2 = date("U", time());
$time_file2 = date("U" ,$buff2);
echo "<br>";
echo "Время изменения файла города В.: $time_file2";
echo "<br>";
//Здесь мы применяем функцию floor для округления в меньшую сторону,
тем самым приводим к минутам
$diff_time2=floor(($now_time2-$time_file2)/60);
echo "Разница во времени: $diff_time2"." ".мин;
echo "<br>";
//Если текущее врея больше на 30 минут времени последнего изменения
файла
if($diff_time2 >=30)
//разумеется здесь мы можем сделать все что угодно, ну например намного
полезнее будет отправлять сообщение на почту.
{print "$file больше 30 минут не изменялся";}
else {print "Все хорошо";}
ftp_close($conn_id);
?>
Количество просмотров: 4319
Комментарии к статье:
Добавить комментарий