Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Бэкап на почту 2.1

    Scheduled Pinned Locked Moved Russian
    8 Posts 4 Posters 2.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Shraik
      last edited by

      В продолжение к http://forum.pfsense.org/index.php/topic,39476.0.html
      В новой версии появился кривоватый SMTP демон поэтому танцы с бубнами стали более простыми.
      В делаем файл с вот таким содержанием

      
      #!/usr/local/bin/php -f
      require_once("/etc/inc/functions.inc");
      require_once("/etc/inc/config.inc");
      require_once("/etc/inc/notices.inc");
      notify_via_smtp(file_get_contents("/conf/config.xml"));
      ?>
      
      

      и ставим ему права "755"
      Дальше всё как обычно, поставить пакет "cron" и прописать нужное нам расписание.
      пример настроек для отправки на gmail смотрите во вложении.
      not.png
      not.png_thumb

      1 Reply Last reply Reply Quote 0
      • A
        aleksvolgin
        last edited by

        А в сей бэкап настройки установленных пакетов попадают?

        1 Reply Last reply Reply Quote 0
        • S
          Shraik
          last edited by

          дык оно тупо сливает в текст письма основной файл конфига "/conf/config.xml"
          вот у меня в письме с конфигом строчки

          
           <installedpackages><package><name>Cron</name></package></installedpackages> 
          

          думаю что настройки пакетов сохранятся.

          Если интересно могу кинуть вариант с использованием PHPMailer  там конфиг можно по человечьи аттачем кинуть.

          1 Reply Last reply Reply Quote 0
          • 3
            3loy
            last edited by

            Интересно, ждем!  :)

            1 Reply Last reply Reply Quote 0
            • S
              Shraik
              last edited by

              Вариант с использованием phpmailer.

              скачиваем пакет, например отсюда
              https://code.google.com/a/apache-extras.org/p/phpmailer/
              разворачиваем куда нибудь, и немного переписываем пример "PHPMailer_5.2.2\examples\test_smtp_gmail_advanced.php"
              добавляем строку для запуска php интерпретатора и делаем скрипт исполняемым

              у меня получилось так

              –--от-сих-tg2.php----
              #!/usr/local/bin/php -f
              require_once('../class.phpmailer.php');
              //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

              $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
              $mail->CharSet = 'Windows-1251';  //Без этой строчки русские буквы кодируются не правильно
              $mail->IsSMTP(); // telling the class to use SMTP

              try {
               $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
               $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
               $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
               $mail->SMTPAuth   = true;                  // enable SMTP authentication
               $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
               $mail->Username   = "bla-bla-bla@gmail.com";  // GMAIL username
               $mail->Password   = "bla-bla-bla";            // GMAIL password
               $mail->AddAddress('bla-bla-bla@gmail.com', 'bla-bla');
               $mail->SetFrom('bla-bla-bla@gmail.com', 'First Last');
               $mail->AddReplyTo('bla-bla-bla@gmail.com', 'First Last');
               $date = date(DATE_RFC822);
               $mail->Subject = "Pfsense текущий конфиг на $date";  
               $mail->Body     = "текущий конфиг";
               $mail->AddAttachment('/conf/config.xml'); // attachment
               $mail->Send();
               echo "Message Sent OK\n";
              } catch (phpmailerException $e) {
               echo $e->errorMessage(); //Pretty error messages from PHPMailer
              } catch (Exception $e) {
               echo $e->getMessage(); //Boring error messages from anything else!
              }
              ?>
              ----до-сих-tg2.php----
              ну и как заработает отключаем дебуг и вешаем на крон

              1 Reply Last reply Reply Quote 0
              • D
                Dealaxer
                last edited by

                Shraik, твоим методом бэкапит только конфиг, а остальные файлы на почту не идут.

                1 Reply Last reply Reply Quote 0
                • S
                  Shraik
                  last edited by

                  А что значит остальные файлы ?
                  У меня конфиг в одном файле. Если надо получить несколько файлов я вижу такие пути:

                  если про первый метод то там придется делать несколько вызовов (ес-но будет несколько писем)
                  notify_via_smtp(file_get_contents("/conf/config.xml"));
                  notify_via_smtp(file_get_contents("/conf/нужный_нам_файл.xml"));
                  но отправка идет в тексте письма, поэтому бинарники так отправлять нельзя и придется изобретать UUENCODE или использовать второй метод.

                  Если мы говорим про отправку через PHP то там всё просто
                  делаем несколько вызовов
                  $mail->AddAttachment('/conf/config.xml'); // attachment
                  $mail->AddAttachment('/conf/bla-bla.lib'); // attachment2
                  и когда отправим в письме будет несколько вложений.

                  1 Reply Last reply Reply Quote 0
                  • D
                    Dealaxer
                    last edited by

                    Shraik, спасибо. Все так и есть)

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post
                    Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.