Backup Script in PHP

Uwaga! Informacje na tej stronie mają ponad 3 lata. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

11:46
Sun
02
Aug 2009

Backup Script in PHP

One of my personal security procedures is daily backup of the code I'm working on to my FTP server. This process requires packing files to an archive and upload the archive to the FTP server. Most annoying part when doing it manually was always selecting aproppriate files, without all these big temporary files and directories like Debug, Release, .ncb, .suo, .user etc.

Today in the morning I've decided to automate this backup task with a script. As I like to use PHP as shell scripting language, here is my backup script in PHP: Backup.php_. It was not a suprise for me to see that PHP already have all the functionality I need, including building ZIP archive and FTP client. Some comments to my code:

To run the script, you must have PHP installed. Then you can just enter something like this into command line:

php Backup.php D:\MyGreatProject

Or you can create BAT file to support backup of your particular project:

@php D:\Backup.php D:\MyGreatProject
@pause

After the script have been started, you have to enter "backup name". It is the name of the ZIP file that will be uploaded to FTP. Script recursively searches for files and subdirectories in the given project directory, filters them using functions FilterDir and FilterFile, packs them to a temporary archive file and then uploads the archive to the FTP server. All remaining parameters (temporary archive path, FTP hostname, login, password and remote directory) are hardcoded as constants.

When it comes to the script code, one of the issues was to ask user about the backup name using system console. PHP has an extension called Readline, but unfortunately it doesn't work on Windows. The solution was to use fgets function with STDIN constant:

print("Enter backup name (default: \"$sSuggestedBackupName\"): ");
$sBackupName = trim(fgets(STDIN, 1024));
if (!$sBackupName)
  $sBackupName = $sSuggestedBackupName;

When it comes to building ZIP archive and handling FTP connection, PHP also has extensions for that and they seem to just work in my PHP without any problems. Zip extension exposes class ZipArchive and FTP extension exposes functions ftp_, like ftp_connect or ftp_put. All is documented in the official PHP documentation.

Comments (1) | Tags: scripts php tools | Author: Adam Sawicki | Share

Comments

lyh
2015-06-05 04:18:30
burberry outlet, http://burberry.outletnow.net/
christian louboutin outlet, http://christian.louboutin-outlet.net/
tory burch sandals, http://toryburch.salesandals.net/
abercrombie and fitch, http://www.abercrombieand-fitch.com.co/
abercrombie and fitch, http://www.abercrombiefitch.us.com/
abercrombie, http://www.abercrombie-kids.us.com/
nike huarache, http://www.air-huarache.co.uk/
air jordan, http://www.airjordans.us/
air jordan shoes, http://www.airjordanshoes2015.com/
nike air max 2015, http://www.airmax-2015.org/
air max, http://www.airmax-90.org/
babyliss pro, http://www.babyliss-pro.net/
basketball shoes, http://www.basketballshoes.com.co/
beats by dre outlet, http://www.beatsbydrdre.co.com/
beats by dre, http://www.beatsbydre.com.co/
monster beats outlet, http://www.beats-by-dre.com.co/
beats headphones, http://www.beatsheadphones.in.net/
bottega, http://www.bottega.us/
burberry outlet online, http://www.burberryhandbags.net.co/
burberry, http://www.burberry-outlet.jp.net/
burberry outlet, http://www.burberryoutlet.org.uk/
burberry factory, http://www.burberryoutlet-online.co.com/
burberry, http://www.burberryoutlet-online.in.net/
cheap calvin kleins, http://www.calvinklein.co.com/
celine handbags, http://www.celinebags.org/
chanel handbags, http://www.chanelhandbags.net.co/
easton bats, http://www.cheapbaseballbats.net/
christian louboutin shoes, http://www.christianlouboutinshoes.ar.com/
nfl jerseys, http://www.cheapjerseys.in.net/
cheap jordans, http://www.cheap-jordans.net/
cheap michael kors, http://www.cheapmichaelkors.us.org/
nike shoes, http://www.cheap-nikeshoes.com/
cheap oakley sunglasses, http://www.cheapoakley.us.org/
cheap oakley , http://www.cheapoakleysunglasses.co.com/
cheap oakley sunglasses, http://www.cheap-oakleysunglasses.in.net/
cheap ray ban, http://www.cheaprayban.com.co/
boots on sale, http://www.cheapshoes.com.co/
cheap ugg boots, http://www.cheapuggboots.eu.com/
flat iron, http://www.chiflatiron.net.co/
christian louboutin, http://www.christian--louboutin.in.net/
louboutin shoes, http://www.christianlouboutin.org.uk/
christian louboutin shoes, http://www.christianlouboutinshoes.jp.net/
coach outlet online, http://www.coachfactory-outlet.co.com/
coach factory, http://www.coachfactoryoutletonline.co.com/
coach outlet usa, http://www.coach-handbags.com.co/
coach outlet, http://www.coachoutlet-online.com.co/
coach store online, http://www.coachoutletstore.net.co/
coach outlet, http://www.coachoutletstore-online.com.co/
chanel sunglasses, http://www.coco-chanelbags.com.co/
converse shoes, http://www.converse.net.co/
coach handbags, http://www.designerhandbagsoutlet.com.co/
eyeglasses online, http://www.eyeglassesonline.us.com/
eyeglass frames, http://www.eyeglassframes.us.com/
burberry clothes, http://www.fashion-clothing.us.com/
salvatore ferragamo, http://www.ferragamo.com.co/
ferragamo shoes, http://www.ferragamoshoes.net/
hair straightener, http://www.ghdhairstraightener.com.co/
gucci shoes outlet, http://www.gucci.me.uk/
gucci handbags, http://www.guccihandbags.com.co/
gucci factory, http://www.gucci-outlet.in.net/
gucci outlet, http://www.gucci--outlet.in.net/
gucci shoes, http://www.guccishoes.net.co/
gucci shoes, http://www.guccishoes.us.org/
hermes, http://www.hermesbags.com.co/
hermes birkin, http://www.hermesbirkin.com.co/
hermes outlet online, http://www.hermesoutlet.net.co/
hollister, http://www.hollister.us.org/
hollister clothing, http://www.hollisterclothing-store.in.net/
insanity workout, http://www.insanityworkout.net.co/
iphone cases, http://www.iphone-cases.us/
jimmy choo, http://www.jimmychoo.net.co/
jordan retro, http://www.jordanretro.org/
jordan shoes, http://www.jordan-shoes.com.co/
juicy couture outlet, http://www.juicycouture.com.co/
juicy couture handbags, http://www.juicycoutureoutlet.net.co/
kate spade, http://www.kate-spade.com.co/
kate spade handbags, http://www.katespade-outlet.com.co/
kate spade outlet online, http://www.kate-spades.com/
longchamp, http://www.longchamp.us.org/
longchamp handbags, http://www.longchamp.com.co/
louboutin, http://www.louboutin.jp.net/
louis vuitton canada, http://www.louis--vuitton.ca/
louis vuitton bags, http://www.louisvuitton.jp.net/
louis vuitton, http://www.louis--vuitton.org.uk/
vuitton handbags, http://www.louisvuitton.so/
louis vuitton outlet online, http://www.louisvuittonas.com/
louis vuitton, http://www.louisvuitton-outlet.com.co/
louis vuitton, http://www.louisvuitton-outlets.us/
marc jacobs handbags, http://www.marcjacobsonsale.com/
mcm bags, http://www.mcm-bags.net/
mcm backpack, http://www.mcmhandbags.com.co/
michael kors, http://www.michaelkors.so/
cheap michael kors, http://www.michael--kors.us.com/
michael kors bags sale, http://www.michaelkorsbags.us.org/
michael kors, http://www.michaelkorshandbags.org.uk/
michael kors outlet online, http://www.michael-kors-handbags.us.com/
michael kors outlet, http://www.michaelkorsoutlet.ar.com/
michael kors outlet, http://www.michael-kors-outlet.us.org/
michael kors outlet online, http://www.michaelkorsoutlet-online.ar.com/
michael kors outlet online sale, http://www.michael-kors-outlet-online.us.org/
michael kors outlet store, http://www.michaelkorsoutletonline-sale.us.com/
michael kors uk, http://www.michaelkors-uk.org.uk/
mont blanc pens, http://www.montblanc--pens.net/
new balance, http://www.newbalance-outlet.org/
nike air max, http://www.nike-air-max.us/
nike factory, http://www.nikefactory.org/
nike free, http://www.nikefree5.net/
nike free run, http://www.nikefree-run.net/
nike free, http://www.nikefree-run.org.uk/
air jordans, http://www.nike-jordanshoes.com/
nike mercurial, http://www.nikemercurial.net/
nike roshe, http://www.nikerosherun.us/
nike outlet store, http://www.nikestore.us/
north face, http://www.northface.us.org/
north face clearance, http://www.northfaceoutlet.com.co/
oakley outlet, http://www.oakleyoutlet.us.org/
oakley sunglasses, http://www.oakley-sunglasses.us.org/
oakley sunglasses cheap, http://www.oakleysunglassescheap.in.net/
oakley sunglasses, http://www.oakleysunglassesoutlet.com.co/
omega watches, http://www.omegawatches.us.com/
pandora charms, http://www.pandora-charms.org.uk/
pandora jewelry, http://www.pandorajewelry.com.co/
polo outlet, http://www.polo-outlets.com/
prada outlet, http://www.pradahandbags.net.co/
prada handbags, http://www.pradahandbags.com.co/
prada outlet, http://www.pradashoes.com.co/
ralph lauren uk, http://www.ralph-lauren.org.uk/
polo ralph lauren outlet, http://www.ralphlaurenoutlet.us.com/
ralph lauren, http://www.ralphlauren-outlet.org.uk/
ralph lauren shirts, http://www.ralphlaurenoutletonline.com.co/
ralph lauren outlet, http://www.ralphlaurenoutletonline.in.net/
polo ralph lauren, http://www.ralphlaurenpolo.in.net/
ray ban outlet, http://www.ray-ban-outlet.us.com/
ray bans, http://www.raybans.us.org/
ray ban sunglasses, http://www.rayban-sunglasses.org.uk/
ray-ban sunglasses, http://www.rayban-sunglasses.us.org/
ray ban sunglasses outlet, http://www.raybansunglassesoutlet.net.co/
ray ban wayfarer, http://www.raybanwayfarer.in.net/
replica handbags, http://www.replicahandbags.com.co/
rolex watches, http://www.replicawatches.us.com/
retro jordans, http://www.retro-jordans.com/
rolex watches, http://www.rolex-watches.me.uk/
nike roshe, http://www.rosherun.org.uk/
roshe run, http://www.rosheruns.us/
salvatore ferragamo, http://www.salvatoreferragamo.in.net/
soccer shoes, http://www.soccer-shoes.org/
baseball bats, http://www.softball-bats.us/
supra shoes, http://www.suprashoe.net/
swarovski crystal, http://www.swarovskicrystal.com.co/
swarovski jewelry, http://www.swarovskijewelry.com.co/
swarovski, http://www.swarovski-uk.org.uk/
the north face, http://www.the-northface.com.co/
the north face jackets, http://www.the-northface.in.net/
north face, http://www.thenorth-face.org.uk/
north face outlet, http://www.thenorthface.us.org/
north face outlet, http://www.thenorthfacejackets.in.net/
thomas sabo, http://www.thomassabo-uk.org.uk/
tiffany and co, http://www.tiffanyandco.net.co/
tiffany jewelry, http://www.tiffanyjewelry.us.org/
timberland outlet, http://www.timberlandboots-outlet.net/
timberland boots, http://www.timberland-shoes.com/
tommy hilfiger outlet, http://www.tommyhilfiger.net.co/
tommy hilfiger kids, http://www.tommy-hilfigeroutlet.com/
toms shoes outlet, http://www.tomshoesoutlet.com/
toms outlet, http://www.toms-outlet.in.net/
toms shoes, http://www.toms-shoes.com.co/
tory burch outlet, http://www.tory-burch-outlet.in.net/
tory burch outlet, http://www.tory-burchoutlet.us.com/
true religion, http://www.true-religion.com.co/
true religion jeans, http://www.truereligionjeans.net.co/
true religion outlet, http://www.truereligion-outlet.com.co/
ugg australia, http://www.uggaustralia.net.co/
ugg boots, http://www.uggboots.net.co/
ugg boots clearance, http://www.uggbootsclearance.com.co/
uggs on sale, http://www.uggsonsale.com.co/
uggs outlet, http://www.uggsoutlet.com.co/
coach outlet, http://www.uptocoachoutlet.com/
vans shoes, http://www.vansshoes.us/
wedding dresses, http://www.weddingdressesuk.org.uk/
yoga pants, http://www.yogapants.com.co/
ugg boot sale, http://www.ugg-boots.us.org/
polo ralph lauren outlet, http://www.poloralphlaurenoutlet.net.co/
burberry outlet online, http://www.burberryoutletonline.ar.com/
toms outlet, http://www.toms-outlet.net.co/
michaelkors.com, http://www.michaelkors.in.net/
christian louboutin, http://www.christianlouboutinoutlet.net.co/
tory burch sale, http://www.toryburchsale.com.co/
prada outlet, http://www.pradaoutlet.com.co/
longchamp handbags, http://www.longchamp-handbags.in.net/
longchamp outlet, http://www.longchampoutlet.com.co/
chanel bags, http://www.chanel-bags.com.co/
true religion outlet, http://www.truereligion-outlet.us.org/
abercrombie and fitch kids, http://www.abercrombie-and-fitch.us.com/
hollister clothing, http://www.hollisterclothing.in.net/
new balance shoes, http://www.newbalance-shoes.org/
converse shoes, http://www.converse--shoes.net/
lululemon outlet, http://www.lululemonoutlet.in.net/
nfl jerseys, http://www.nfl-jerseys.in.net/
cheap jerseys, http://www.cheapjerseys.us.org/
rolex watches, http://www.rolex-watches.us.com/
rolex watches for sale, http://www.rolexwatchesforsale.us.com/
p90x workout, http://www.p90xworkout.in.net/
giuseppe zanotti, http://www.giuseppezanotti.com.co/
mac cosmetics, http://www.maccosmetics.net.co/
instyler ionic styler, http://www.instyler.in.net/
mizuno wave, http://www.mizunorunning.net/
designer handbags, http://www.handbagsoutlet.com.co/
tommy hilfiger, http://www.hilfigeroutlet.in.net/
ed hardy, http://www.edhardy.in.net/
levi's jeans, http://www.levisjeans.com.co/
bcbg max, http://www.bcbgdresses.net/
bebe dresses, http://www.bebeclothing.net/
harrods, http://www.harrods-london.co.uk/
gucci outlet, http://www.guccishoes.com.co/
ralph lauren outlet online, http://www.ralphlaurenoutletonline.us.org/

Post comment

Nick *
Your name or nickname
E-mail
Your contact information (optional, will not be shown)
Text *
Content of your comment
Calculate *
(* - required field)
STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2016 Adam Sawicki
Copyright © 2004-2016 Adam Sawicki