Heb een stukkie code geschreven voor het backuppen van een website met alleen ftp en http toegang inclusief een mysql database op een linuxbak.
Wat heb je nodig op je linuxbak:
-Lynx
-lftp
Eerst eens stukkie php dat je op de externe website moet plaatsen om de database te backuppen (dump.php in mijn geval):
Nu kan je de dump van je database uitlezen (als je het uiste passwd mee geeft als parameter).
Dan het stukje code voor op je linux bak:
nog even /home/backup/month/ aanmaken. Code in een cronjob stoppen en klaar.
Wat heb je nodig op je linuxbak:
-Lynx
-lftp
Eerst eens stukkie php dat je op de externe website moet plaatsen om de database te backuppen (dump.php in mijn geval):
PHP:
1
| <? $dbhost = "localhost"; $dbuser = "username"; $dbpass = "passwd"; $dbname = "databasename"; $systemrun = "mysqldump -h$dbhost -u$dbuser -p$dbpass --opt $dbname"; if($checkpw == $dbpass){ system("$systemrun"); } else { echo "error"; }?> |
Nu kan je de dump van je database uitlezen (als je het uiste passwd mee geeft als parameter).
Dan het stukje code voor op je linux bak:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #!/bin/sh ftpserver="" ftpuser="" ftppasswd="" ftpdirtocopy="" dumpurl="" #url naar dump.php sqlpasswd="" #passwd van mysqldatabase if [ /tmp/webbackup/ ]; then rm /tmp/webbackup/* rmdir /tmp/webbackup/ fi mkdir /tmp/webbackup/ cd /tmp/webbackup/ ( echo "open $ftpserver" echo "user $ftpuser $ftppasswd" echo "" echo "mirror $ftpdirtocopy" echo "quit" ) | lftp cd /tmp/webbackup/ tar cf - / | gzip > web.tar.gz rm -rf / lynx -dump $dumpurl?checkpw=$sqlpasswd | gzip > /tmp/webbackup/sql.gz day=`/usr/bin/date +%A` month=`/usr/bin/date +%B` cd /tmp/webbackup/ tar cf - web.tar.gz sql.gz | gzip > $day.tar.gz rm web.tar.gz rm sql.gz cp $day.tar.gz /home/backup/month/$month.tar.gz mv $day.tar.gz /home/backup/ touch /tmp/webbackup/done |
nog even /home/backup/month/ aanmaken. Code in een cronjob stoppen en klaar.