Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla
Ennen tallennusta suositellaan ottamaan kopio muokkausruudusta (ctrl-a -> ctrl-c)
Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.
MediaWiki varmuuskopio ohjelma
Siirry navigaatioon
Siirry hakuun
Johdanto[muokkaa]
Katso tarkempi ohje sivulta Varmuuskopiointi.
<?php /** * @author Nischay Nahata <nischayn22@gmail.com> * @license GPL v2 or later */ // OSX Mavericks paikallinen tietokanta // Varmuuskopioi tietokannan, kuvakansion, laajennusosakansion ja LocalSettings.php -tiedoston error_reporting(E_ERROR | E_PARSE); // Katso arvot esim. LocalSettings.php -tiedostosta $settings = array(); $settings['dbPath'] = '/usr/local/mysql/bin/'; // polku paikalliseen tietokantaan $settings['dbHost'] = 'localhost'; // yleensä localhost $settings['dbName'] = 'wikidb'; // tietokannan nimi $settings['dbUser'] = 'tunnus'; // tietokannan käyttäjätunnus $settings['dbPassword'] = 'salasana'; // tietokannan salasana // Paras käyttää absoluuttista polkua // esm. OSX: /Users/kayttajanimi/Sites/mediawiki/varmuuskopiokansio/paiva_varmuuskopiot // Ohjelma muodostaa kohdehakemistot itse jos ne puuttuvat // Mediawikin, laajennusosien ja kuvakansion sijainti $settings['mediawikiDir'] = '/Users/kayttajanimi/Sites/mediawiki/'; // huomaa että loppuu kenoviivaan $settings['extensionDir'] = '/Users/kayttajanimi/Sites/mediawiki/extensions/'; // huomaa että loppuu kenoviivaan $settings['uploadDir'] = '/Users/kayttajanimi/Sites/mediawiki/images/'; // huomaa että loppuu kenoviivaan // Kohdehakemistot varmuuskopioille $settings['dailybackupsfolder'] = '/Users/kayttajanimi/Documents/Arkisto/wiki/paiva_varmuuskopiot'; $settings['weeklybackupsfolder'] = '/Users/kayttajanimi/Documents/Arkisto/wiki/viikko_varmuuskopiot'; $settings['monthlybackupsfolder'] = '/Users/kayttajanimi/Documents/Arkisto/wiki/kuukausi_varmuuskopiot'; echo "Hei! <br><br>Otetaan varmuuskopio MediaWikin tietokannasta " . $settings['dbName'] . " , laajennusosista, kuvakansiosta ja LocalSettings.php -tiedostosta " . date("Y/m/d") . "<br><br>"; // Jos kohdehakemistoja ei ole olemassa, lisätään ne if (!file_exists($settings['dailybackupsfolder'])) { mkdir( $settings['dailybackupsfolder'], 0777, true); } if (!file_exists($settings['weeklybackupsfolder'])) { mkdir( $settings['weeklybackupsfolder'], 0777, true); } if (!file_exists($settings['monthlybackupsfolder'])) { mkdir( $settings['monthlybackupsfolder'], 0777, true); } // Muodostetaan väliaikaistiedostot hakemistoon jossa tämä skripti sijaitsee echo "Muodostetaan tietokannasta varmuuskopio<br>"; exec( $settings['dbPath'] ."mysqldump -u ". $settings['dbUser'] ." -p" . $settings['dbPassword'] . " --default-character-set=binary --database " . $settings['dbName'] . " | gzip > " . $settings['mediawikiDir'] . "mysqldump.sql.gz.tmp" ); echo "Muodostetaan kuvista, laajennusosista ja LocalSettings.php-tiedostosta varmuuskopio<br>"; exec("tar -cvpzf " . $settings['mediawikiDir'] . "kuvatvarmuuskopio.tar.gz.tmp " . $settings['uploadDir'] . " " . $settings['extensionDir'] . " " . $settings['mediawikiDir'] . "LocalSettings.php" ); // Päivittäisvarmuuskopio exec( "cp " . $settings['mediawikiDir'] . "mysqldump.sql.gz.tmp " . $settings['dailybackupsfolder']. "/tietokantadump-" . date("Y-m-d") . ".sql.gz" ); exec( "cp " . $settings['mediawikiDir'] . "kuvatvarmuuskopio.tar.gz.tmp " . $settings['dailybackupsfolder']. "/kuvatvarmuuskopio-" . date("Y-m-d") . ".tar.gz" ); // Viikkovarmuuskopio sunnuntaisin $today = strtotime( 'today', time() ); $week_end = strtotime('next Sunday', time() - 24*60*60); // selvitetään sunnuntaipäivä if( $week_end == $today ) { echo "Tänään on sunnuntai, kopioidaan varmuuskopio myös viikkohakemistoon<br>"; exec( "cp " . $settings['mediawikiDir'] . "mysqldump.sql.gz.tmp " . $settings['weeklybackupsfolder']. "/tietokantadump-" . date("Y-m-d") . ".sql.gz" ); exec( "cp " . $settings['mediawikiDir'] . "kuvatvarmuuskopio.tar.gz.tmp " . $settings['weeklybackupsfolder']. "/kuvatvarmuuskopio-" . date("Y-m-d") . ".tar.gz" ); } // Kuukausittaisvarmuuskopio kuukauden viimeisenä päivänä $month_end = (strtotime('next month',strtotime(date('m/01/y'))) - 24*60*60); // selvitetään kuukauden viimeinen päivä if( $today == $month_end ) { echo "Tänään on kuukauden viimeinen päivä, kopioidaan varmuuskopio myös kuukausihakemistoon<br>"; exec( "cp " . $settings['mediawikiDir'] . "mysqldump.sgl.gz.tmp " . $settings['monthlybackupsfolder']. "/tietokantadump-" . date("Y-m-d") . ".sql.gz" ); exec( "cp " . $settings['mediawikiDir'] . "kuvatvarmuuskopio.tar.gz.tmp " . $settings['monthlybackupsfolder']. "/kuvatvarmuuskopio-" . date("Y-m-d") . ".tar.gz" ); } // Poistetaan vanhat ja väliaikset varmuuskopiot echo "Poistetaan vanhat ja väliaikaiset varmuuskopiot<br>"; exec("find " .$settings['dailybackupsfolder']. "/tietokantadump*.gz -maxdepth 1 -type f -mtime +7 -delete"); exec("find " .$settings['weeklybackupsfolder']. "/tietokantadump*.gz -maxdepth 1 -type f -mtime +32 -delete"); exec("find " .$settings['monthlybackupsfolder']. "/tietokantadump*.gz -maxdepth 1 -type f -mtime +92 -delete"); exec("find " .$settings['dailybackupsfolder']. "/kuvatvarmuuskopio*.gz -maxdepth 1 -type f -mtime +7 -delete"); exec("find " .$settings['weeklybackupsfolder']. "/kuvatvarmuuskopio*.gz -maxdepth 1 -type f -mtime +32 -delete"); exec("find " .$settings['monthlybackupsfolder']. "/kuvatvarmuuskopio*.gz -maxdepth 1 -type f -mtime +92 -delete"); exec("rm " . $settings['mediawikiDir'] . "mysqldump.sql.gz.tmp "); exec("rm " . $settings['mediawikiDir'] . "kuvatvarmuuskopio.tar.gz.tmp");
Alkuperäinen ohjelma: https://github.com/nischayn22/mw_backup