Időzóna: (GMT +1 óra) RSS - hozzászólások

Auto Backup

Szerző
Üzenet
Garudai
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2009.02.04. Szerda 12:25
Hozzászólások: 250
Hozzászólás Elküldve: 2010.02.22. 23:37    Hozzászólás témája: Auto Backup
Hozzászólás az előzmény idézésével
Hogyan lehetne azt megoldani, hogy a forum készítsen egy backupot a fileokról (a /files-t kivéve) illetve az adatbázisról majd vagy tárolja el helyben vagy kuldje el emailben?
Jó lenne, ha a php belső backup készítőjét használná, és figyelembe venné a set_time_limit et is.

Ezt a scriptet majd vagy cron hivná meg vagy akinek nincs cron akkoo az index.php hivná meg valami szép üzenettel, hogy "Kérem várjon a fórum hamarosan elérhető lesz, 1/10 .. 2/10 stb"
_________________
Kép

Felhasználó profiljának megtekintése Privát üzenet küldése
_zso2
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.25. Kedd 1:00
Hozzászólások: 1968
Hozzászólás Elküldve: 2010.02.23. 11:05    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ez egyértelműen nem fórum funkció :)

De ha van cron futtatási lehetőséged, akkor egy shell script:

Kód:

#!/bin/sh

FORUMDIR=%forumod_konyvtara%
EMAIL=%emailcim_ahova_a_mail_menjen%
DATE=`date +"%Y%m%d"`
SUBJECT=A phpBB-m $DATE-i mentése

cd $FORUMDIR
tar czf $DATE.tar.gz * --exclude files
mail -s "$SUBJECT" $EMAIL < $DATE.tar.gz

... vagy valami, ami ehhez nagyon hasonlít :)

De ez NEM fogja neked a DB-t is lementeni ;)
_________________
Tapasztalást pénzért venni vagy hagyományképpen kapni nem lehet - fizetni kell azért mindég és mindegyiknek.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2578
Hozzászólás Elküldve: 2010.02.23. 17:32    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Van értelme ugyanazt a változatlan PHP kódot lementeni mindennap? Módosítás előtt (jó esetben) úgyis készítesz mentést, azon kívül meg nem igazán van minek változnia. Szerintem pont a files és images/avatars/upload könyvtárakról kellene mentést készítened az adatbázison kívül.

Találtam egy Auto Database Backup névre hallgató MOD-ot, viszont ez sem küldi el emailben a mentést, csak elkészíti.

Az email küldést elvileg így tudod hozzáadni (nem próbáltam ki, ahogy a MOD-ot sem): Az auto_db_backup.php-ben a

Kód:

trigger_error('BACKUP_SUCCESS');
sor elé illeszd be:

Kód:

mail_attachment( 'db_backup_' . date('Y-m-d'), $phpbb_root_path . 'store/auto_backup/', 'cimzett@akarmi.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );

A fájl végére meg a ?> elé illeszd be ezt:

Kód:

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
    $file = $path.$filename;
    $file_size = filesize($file);
    $handle = fopen($file, "r");
    $content = fread($handle, $file_size);
    fclose($handle);
    $content = chunk_split(base64_encode($content));
    $uid = md5(uniqid(time()));
    $name = basename($file);
    $header = "From: ".$from_name." <".$from_mail.">\r\n";
    $header .= "Reply-To: ".$replyto."\r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
    $header .= "This is a multi-part message in MIME format.\r\n";
    $header .= "--".$uid."\r\n";
    $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
    $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $header .= $message."\r\n\r\n";
    $header .= "--".$uid."\r\n";
    $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
    $header .= "Content-Transfer-Encoding: base64\r\n";
    $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    $header .= $content."\r\n\r\n";
    $header .= "--".$uid."--";
    if (mail($mailto, $subject, "", $header)) {
        echo = "mail send ... OK"; // or use booleans here
    } else {
        echo = "mail send ... ERROR!";
    }
}

Olaf-ot kell a kódért dicsérni / szidni.
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
Garudai
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2009.02.04. Szerda 12:25
Hozzászólások: 250
Hozzászólás Elküldve: 2010.02.23. 18:14    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Köszönöm meg vizsgálom...

Szerintem van erteleme a php es a HTML fileok mentésének is, volt olyan már, hogy minden filet aminek a nevében benne volt a deafult mail index szó, "megfertőződött" természetesen az én hibámból és át kellet nyálazzam őket és kiszedni a végukre beszurt <script> evil code </script> et.
_________________
Kép

Felhasználó profiljának megtekintése Privát üzenet küldése
Garudai
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2009.02.04. Szerda 12:25
Hozzászólások: 250
Hozzászólás Elküldve: 2010.02.24. 06:02    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Muköködik, egy kis modósítás után..

Ezt ki kell venni

Kód:


 if (mail($mailto, $subject, "", $header)) {
        echo = "mail send ... OK"; // or use booleans here
    } else {
        echo = "mail send ... ERROR!";
    }


Es a kiterjesztést oda tenni


Kód:


mail_attachment( 'db_backup_' . date('Y-m-d') . 'sql.gz', $phpbb_root_path . 'store/auto_backup/', 'cimzett@akarmi.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );

_________________
Kép

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2578
Hozzászólás Elküldve: 2010.02.24. 16:02    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Az első rész, amit kivettél, az küldi el magát a levelet, szóval nem teljesen értem, hogy anélkül hogyan működhet neked. A másik részt pedig, ha berakod az első helyére, akkor annak le sem kellene futnia, mert a mail_attachment funkciót egyedül a funkción belül hívnád meg, de mivel a funkció nem lett meghívva, így nem jut el soha a kód a futása során a függvényhívásra :roll:

A teljes kódnak így kellene kinéznie (a levélküldést beleraktam egy plusz else ágba, hogy csak akkor történjen ténylegesen levélküldés, ha készült új mentés, ne pedig a kód minden egyes meghívásakor):

Kód:

<?php
/**
*
* @package Auto Database Backup
* @copyright (c) 2008 EXreaction
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

if (!defined('IN_PHPBB'))
{
   // Stuff required to work with phpBB3
   define('IN_PHPBB', true);
   $phpbb_root_path = './';
   $phpEx = substr(strrchr(__FILE__, '.'), 1);
   include($phpbb_root_path . 'common.' . $phpEx);

   // Start session management
   $user->session_begin();
   $auth->acl($user->data);
   $user->setup('acp/database');

   if (!backup_db())
   {
      trigger_error('The database has already been backed up today.');
   }
   else {
      mail_attachment( 'db_backup_' . date('Y-m-d'), $phpbb_root_path . 'store/auto_backup/', 'cimzett@akarmi.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );
      trigger_error('BACKUP_SUCCESS');
   }
}

function backup_db()
{
   global $db, $phpbb_root_path, $phpEx, $table_prefix;

   $name = 'auto_backup/db_backup_' . date('Y-m-d');

   //Make sure this script can only be ran once per day
   if (file_exists($phpbb_root_path . 'store/' . $name . '.sql.gz'))
   {
      return false;
   }

   include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
   include($phpbb_root_path . 'includes/acp/acp_database.' . $phpEx);

   @set_time_limit(1200);
   @set_time_limit(0);

   switch ($db->sql_layer)
   {
      case 'mysqli':
      case 'mysql4':
      case 'mysql':
         $extractor = new mysql_extractor(false, true, 'gzip', $name, time());
      break;

      case 'sqlite':
         $extractor = new sqlite_extractor(false, true, 'gzip', $name, time());
      break;

      case 'postgres':
         $extractor = new postgres_extractor(false, true, 'gzip', $name, time());
      break;

      case 'oracle':
         $extractor = new oracle_extractor(false, true, 'gzip', $name, time());
      break;

      case 'mssql':
      case 'mssql_odbc':
         $extractor = new mssql_extractor(false, true, 'gzip', $name, time());
      break;

      case 'firebird':
         $extractor = new firebird_extractor(false, true, 'gzip', $name, time());
      break;
   }

   $extractor->write_start($table_prefix);

   foreach (get_tables($db) as $table_name)
   {
      // Get the table structure
      $extractor->write_table($table_name);

      // Data
      $extractor->write_data($table_name);
   }

   $extractor->write_end();

   add_log('admin', 'LOG_DB_BACKUP');

   set_config('backup_last_gc', time(), true);

   return true;
}

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
   $file = $path.$filename;
   $file_size = filesize($file);
   $handle = fopen($file, "r");
   $content = fread($handle, $file_size);
   fclose($handle);
   $content = chunk_split(base64_encode($content));
   $uid = md5(uniqid(time()));
   $name = basename($file);
   $header = "From: ".$from_name." <".$from_mail.">\r\n";
   $header .= "Reply-To: ".$replyto."\r\n";
   $header .= "MIME-Version: 1.0\r\n";
   $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
   $header .= "This is a multi-part message in MIME format.\r\n";
   $header .= "--".$uid."\r\n";
   $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
   $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
   $header .= $message."\r\n\r\n";
   $header .= "--".$uid."\r\n";
   $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
   $header .= "Content-Transfer-Encoding: base64\r\n";
   $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
   $header .= $content."\r\n\r\n";
   $header .= "--".$uid."--";
   if (mail($mailto, $subject, "", $header)) {
      echo "mail send ... OK"; // or use booleans here
   } else {
      echo "mail send ... ERROR!";
   }
}
?>

_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!



A hozzászólás legutóbb Marcee által 2010.02.24. 17:57-kor lett szerkesztve, összesen 1 alkalommal.

Felhasználó profiljának megtekintése Privát üzenet küldése
nonoka
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.02.06. Kedd 23:26
Hozzászólások: 117
Hozzászólás Elküldve: 2010.02.24. 17:33    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Marcee írta:

Az első rész, amit kivettél, az küldi el magát a levelet, szóval nem teljesen értem, hogy anélkül hogyan működhet neked. A másik részt pedig, ha berakod az első helyére, akkor annak le sem kellene futnia, mert a mail_attachment funkciót egyedül a funkción belül hívnád meg, de mivel a funkció nem lett meghívva, így nem jut el soha a kód a futása során a függvényhívásra :roll:

A teljes kódnak így kellene kinéznie (a levélküldést beleraktam egy plusz else ágba, hogy csak akkor történjen ténylegesen levélküldés, ha készült új mentés, ne pedig a kód minden egyes meghívásakor):

Kód:

<?php
/**
*
* @package Auto Database Backup
* @copyright (c) 2008 EXreaction
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

if (!defined('IN_PHPBB'))
{
   // Stuff required to work with phpBB3
   define('IN_PHPBB', true);
   $phpbb_root_path = './';
   $phpEx = substr(strrchr(__FILE__, '.'), 1);
   include($phpbb_root_path . 'common.' . $phpEx);

   // Start session management
   $user->session_begin();
   $auth->acl($user->data);
   $user->setup('acp/database');

   if (!backup_db())
   {
      trigger_error('The database has already been backed up today.');
   }
   else {
      mail_attachment( 'db_backup_' . date('Y-m-d'), $phpbb_root_path . 'store/auto_backup/', 'cimzett@akarmi.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );
      trigger_error('BACKUP_SUCCESS');
   }
}

function backup_db()
{
   global $db, $phpbb_root_path, $phpEx, $table_prefix;

   $name = 'auto_backup/db_backup_' . date('Y-m-d');

   //Make sure this script can only be ran once per day
   if (file_exists($phpbb_root_path . 'store/' . $name . '.sql.gz'))
   {
      return false;
   }

   include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
   include($phpbb_root_path . 'includes/acp/acp_database.' . $phpEx);

   @set_time_limit(1200);
   @set_time_limit(0);

   switch ($db->sql_layer)
   {
      case 'mysqli':
      case 'mysql4':
      case 'mysql':
         $extractor = new mysql_extractor(false, true, 'gzip', $name, time());
      break;

      case 'sqlite':
         $extractor = new sqlite_extractor(false, true, 'gzip', $name, time());
      break;

      case 'postgres':
         $extractor = new postgres_extractor(false, true, 'gzip', $name, time());
      break;

      case 'oracle':
         $extractor = new oracle_extractor(false, true, 'gzip', $name, time());
      break;

      case 'mssql':
      case 'mssql_odbc':
         $extractor = new mssql_extractor(false, true, 'gzip', $name, time());
      break;

      case 'firebird':
         $extractor = new firebird_extractor(false, true, 'gzip', $name, time());
      break;
   }

   $extractor->write_start($table_prefix);

   foreach (get_tables($db) as $table_name)
   {
      // Get the table structure
      $extractor->write_table($table_name);

      // Data
      $extractor->write_data($table_name);
   }

   $extractor->write_end();

   add_log('admin', 'LOG_DB_BACKUP');

   set_config('backup_last_gc', time(), true);

   return true;
}

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
   $file = $path.$filename;
   $file_size = filesize($file);
   $handle = fopen($file, "r");
   $content = fread($handle, $file_size);
   fclose($handle);
   $content = chunk_split(base64_encode($content));
   $uid = md5(uniqid(time()));
   $name = basename($file);
   $header = "From: ".$from_name." <".$from_mail.">\r\n";
   $header .= "Reply-To: ".$replyto."\r\n";
   $header .= "MIME-Version: 1.0\r\n";
   $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
   $header .= "This is a multi-part message in MIME format.\r\n";
   $header .= "--".$uid."\r\n";
   $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
   $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
   $header .= $message."\r\n\r\n";
   $header .= "--".$uid."\r\n";
   $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
   $header .= "Content-Transfer-Encoding: base64\r\n";
   $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
   $header .= $content."\r\n\r\n";
   $header .= "--".$uid."--";
   if (mail($mailto, $subject, "", $header)) {
      echo = "mail send ... OK"; // or use booleans here
   } else {
      echo = "mail send ... ERROR!";
   }
}
?>
Én nálam egy ijen hibát dob:

Kód:

Parse error: syntax error, unexpected '=' in /home/vol13/xtreemhost.com/xth_4760525/onlinefilmekingyen.co.cc/htdocs/auto_db_backup.php  on line 126

_________________
Online Filmek ingyen

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2578
Hozzászólás Elküldve: 2010.02.24. 17:58    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Kösz, javítva.
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
nonoka
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.02.06. Kedd 23:26
Hozzászólások: 117
Hozzászólás Elküldve: 2010.02.24. 18:15    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A szerveren milyen függvénynek kell engedélyezve lennie hogy ez működjön,mert gondolom azért kapom ezt a hibát nem?
A mentést attól még megcsinálta.


Kód:

[phpBB Debug] PHP Notice: in file /auto_db_backup.php on line 103: filesize() [function.filesize]: stat failed for ./store/auto_backup/db_backup_2010-02-24
[phpBB Debug] PHP Notice: in file /auto_db_backup.php on line 104: fopen(./store/auto_backup/db_backup_2010-02-24) [function.fopen]: failed to open stream: No such file or directory
[phpBB Debug] PHP Notice: in file /auto_db_backup.php on line 105: fread(): supplied argument is not a valid stream resource
[phpBB Debug] PHP Notice: in file /auto_db_backup.php on line 106: fclose(): supplied argument is not a valid stream resource
mail send ... OK

_________________
Online Filmek ingyen

Felhasználó profiljának megtekintése Privát üzenet küldése
Garudai
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2009.02.04. Szerda 12:25
Hozzászólások: 250
Hozzászólás Elküldve: 2010.02.24. 19:42    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ja ja az If az kell csak az echo nem, mert adja a header errort, lehetne valami spéci Trigger error, ha megcsinálta a mentést akkor:
"Adatbázis elmentve."
Ha meg a mailt is sikerült elküldeni akkor:
"Adatbázis elmentve,
Email elküldve"

nonoka:

Ezt:

Kód:


 mail_attachment( 'db_backup_' . date('Y-m-d'), $phpbb_root_path . 'store/auto_backup/', 'cimzett@akarmi.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );
      trigger_error('BACKUP_SUCCESS');


Cseréld erre:

Idézet:

mail_attachment( 'db_backup_' . date('Y-m-d') . '.sql.gz', $phpbb_root_path . 'store/auto_backup/', 'cimzett@akarmi.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );
trigger_error('BACKUP_SUCCESS');

_________________
Kép

Felhasználó profiljának megtekintése Privát üzenet küldése
nonoka
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.02.06. Kedd 23:26
Hozzászólások: 117
Hozzászólás Elküldve: 2010.02.24. 19:53    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Igen email megjön és a tartalma üres és nincs kiterjesztése a mentésnek db_backup_2010-02-24 mérete 2 bájt
_________________
Online Filmek ingyen

Felhasználó profiljának megtekintése Privát üzenet küldése
Garudai
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2009.02.04. Szerda 12:25
Hozzászólások: 250
Hozzászólás Elküldve: 2010.02.24. 20:08    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Igen ezert kell oda tenni a kiterjesztést.

'db_backup_' . date('Y-m-d'),
helyett
'db_backup_' . date('Y-m-d') . '.sql.gz' ,

Így már müködni fog...
_________________
Kép

Felhasználó profiljának megtekintése Privát üzenet küldése
nonoka
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.02.06. Kedd 23:26
Hozzászólások: 117
Hozzászólás Elküldve: 2010.02.24. 20:16    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Most már van kiterjesztése.
Sajnos nem az egész mentést küldi át,mikor kiakarom csomagolni azt írja hogy az archívumnak nincs vége és most egy 47 kb os fájl jött át!

Körülbelül 1.4 megabyte kellene hogy legyen.
_________________
Online Filmek ingyen

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 1913
Hozzászólás Elküldve: 2010.02.25. 08:43    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Garudai írta:

Ja ja az If az kell csak az echo nem, mert adja a header errort, lehetne valami spéci Trigger error, ha megcsinálta a mentést akkor:
"Adatbázis elmentve."
Ha meg a mailt is sikerült elküldeni akkor:
"Adatbázis elmentve,
Email elküldve"
Megoldva !

auto_db_backup.rar

A megadott email kódolást is átállítottam és a php kódolását is, hogy ne legyen ékezetes probléma.

Viszont ez a napi lementés ép akire esik azt megfogja.
Nálam 20 Mb az adatbázis míg a művelet végbe ment eltelt 8 sec.
Arról nem beszélve, hogy ha valakinek nem ilyen nagy a net sebessége annak ez még több idő :?

szerk:
Viszont, ha klikk egyből a másik oldalra vagy ép a frissítés gombra akkor egyből betöltődik az oldal mivel le szál a töltésről, de ettől függetlenül a lementés elkészül zsírrrrrrrrr.....



A hozzászólás legutóbb KillBill által 2010.02.25. 09:00-kor lett szerkesztve, összesen 1 alkalommal.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Garudai
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2009.02.04. Szerda 12:25
Hozzászólások: 250
Hozzászólás Elküldve: 2010.02.25. 08:52    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Hmmm lehet hogy tul sok ideig fut a scriopt vagy még az elött elkezni kuldeni a mailt mielött végez....

Ez a tuti :D

Kód:


<?php
/**
*
* @package Auto Database Backup
* @copyright (c) 2008 EXreaction
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

if (!defined('IN_PHPBB'))
{
   // Stuff required to work with phpBB3
   define('IN_PHPBB', true);
   $phpbb_root_path = './';
   $phpEx = substr(strrchr(__FILE__, '.'), 1);
   include($phpbb_root_path . 'common.' . $phpEx);

   // Start session management
   $user->session_begin();
   $auth->acl($user->data);
   $user->setup('acp/database');

   $do_do = request_var('do', '');
   if ( $do_do == 'mail')
   {
    mail_attachment( 'db_backup_' . date('Y-m-d') . '.sql.gz', $phpbb_root_path . 'store/auto_backup/', 'email@cimed.hu', 'felado@akarmi.hu', 'Neved', 'felado@akarmi.hu', 'Levél tárgya', 'Levél szövege' );
   }
   
   
   if (!backup_db())
   {
      trigger_error('The database has already been backed up today.');
   }   
   
   meta_refresh ( 3, $_SERVER['PHP_SELF'].'?do=mail', false );
   
   trigger_error('BACKUP_SUCCESS');
   
}

function backup_db()
{
   global $db, $phpbb_root_path, $phpEx, $table_prefix, $name;

   $name = 'auto_backup/db_backup_' . date('Y-m-d');

   //Make sure this script can only be ran once per day
   if (file_exists($phpbb_root_path . 'store/' . $name . '.sql.gz'))
   {
      return false;
   }

   include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
   include($phpbb_root_path . 'includes/acp/acp_database.' . $phpEx);

   @set_time_limit(1200);
   @set_time_limit(0);

   switch ($db->sql_layer)
   {
      case 'mysqli':
      case 'mysql4':
      case 'mysql':
         $extractor = new mysql_extractor(false, true, 'gzip', $name, time());
      break;

      case 'sqlite':
         $extractor = new sqlite_extractor(false, true, 'gzip', $name, time());
      break;

      case 'postgres':
         $extractor = new postgres_extractor(false, true, 'gzip', $name, time());
      break;

      case 'oracle':
         $extractor = new oracle_extractor(false, true, 'gzip', $name, time());
      break;

      case 'mssql':
      case 'mssql_odbc':
         $extractor = new mssql_extractor(false, true, 'gzip', $name, time());
      break;

      case 'firebird':
         $extractor = new firebird_extractor(false, true, 'gzip', $name, time());
      break;
   }

   $extractor->write_start($table_prefix);

   foreach (get_tables($db) as $table_name)
   {
      // Get the table structure
      $extractor->write_table($table_name);

      // Data
      $extractor->write_data($table_name);
   }

   $extractor->write_end();

   add_log('admin', 'LOG_DB_BACKUP');

   set_config('backup_last_gc', time(), true);

   return true;
}

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
    $file = $path.$filename;
    $file_size = filesize($file);
    $handle = fopen($file, "r");
    $content = fread($handle, $file_size);
    fclose($handle);
    $content = chunk_split(base64_encode($content));
    $uid = md5(uniqid(time()));
    $name = basename($file);
    $header = "From: ".$from_name." <".$from_mail.">\r\n";
    $header .= "Reply-To: ".$replyto."\r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
    $header .= "This is a multi-part message in MIME format.\r\n";
    $header .= "--".$uid."\r\n";
    $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
    $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $header .= $message."\r\n\r\n";
    $header .= "--".$uid."\r\n";
    $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
    $header .= "Content-Transfer-Encoding: base64\r\n";
    $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    $header .= $content."\r\n\r\n";
    $header .= "--".$uid."--";
   if (mail($mailto, $subject, "", $header)) {
      // echo = "mail send ... OK"; // or use booleans here
     trigger_error('Email elkuldve.');
   } else {
      // echo = "mail send ... ERROR!";
     trigger_error('Email kuldes sikertelen.');
   }
}
 

?>


Csak az email kell beálítani és müködik is.
_________________
Kép

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés