![]() |
|
|||||||
| Programming C, bash, Python, Perl, PHP, Java, you name it. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
|
|||
|
I need bash script to backup my sites. Something like this:
(I dont know very well english so I'll try to explain myself with PHP )Code:
$date = date("m-Y-");
$sitesPath = "/some/path/to/web/sites/";
if (is_dir($sitesPath)) {
$handle = opendir($sitesPath);
if (!empty($handle)) {
while (false !== ($file = readdir($handle))) {
if (is_dir($sitesPath.$file)) { $dir_array[] = $file; }
}
}
closedir($handle);
}
if (is_array($dir_array)) {
foreach ($dir_array as $dir) {
echo "Archiving: ".$sitesPath."/".$dir."<br />";
exec("tar -zcvf ".$date."-".$dir.".tar.gz ".$sitesPath."/".$dir);
}
}
![]() And of course sorry for my english ![]() Thanks for reading !
__________________
FreeBSD 6.2 RELEASE |
|
|||
|
I once made the mistake to look to deeply in the brown eyes of my then future wife.
![]() Anyway, something like this? Code:
#!/bin/sh
SITES='
/home/www/site-1
/home/www/site-2
/home/www/site-3
'
for THIS in ${SITES} ; do
DATE=$(date "+%Y-%m-%d_%H-%M")
SITENAME=$(basename ${THIS})
echo tar cvzf ${DATE}_${SITENAME}.tgz -C ${THIS}
done
Code:
$ sh -vx site_backup
#!/bin/sh
SITES='
/home/www/site-1
/home/www/site-2
/home/www/site-3
'
+ SITES=
/home/www/site-1
/home/www/site-2
/home/www/site-3
for THIS in ${SITES} ; do
DATE=$(date "+%Y-%m-%d_%H-%M")
SITENAME=$(basename ${THIS})
echo tar cvzf ${DATE}_${SITENAME}.tgz -C ${THIS}
done
+ date +%Y-%m-%d_%H-%M
+ DATE=2010-01-16_00-13
+ basename /home/www/site-1
+ SITENAME=site-1
+ echo tar cvzf 2010-01-16_00-13_site-1.tgz -C /home/www/site-1
tar cvzf 2010-01-16_00-13_site-1.tgz -C /home/www/site-1
+ date +%Y-%m-%d_%H-%M
+ DATE=2010-01-16_00-13
+ basename /home/www/site-2
+ SITENAME=site-2
+ echo tar cvzf 2010-01-16_00-13_site-2.tgz -C /home/www/site-2
tar cvzf 2010-01-16_00-13_site-2.tgz -C /home/www/site-2
+ date +%Y-%m-%d_%H-%M
+ DATE=2010-01-16_00-13
+ basename /home/www/site-3
+ SITENAME=site-3
+ echo tar cvzf 2010-01-16_00-13_site-3.tgz -C /home/www/site-3
tar cvzf 2010-01-16_00-13_site-3.tgz -C /home/www/site-3
__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump |
|
|||
|
Thanks J65nko!
__________________
FreeBSD 6.2 RELEASE |
|
|||
|
On reviewing it, I see I forgot to specify the directory to backup.
Solution 1: Omit the "-C", that only changes the directory Disadvantage: the path will be in the backup Solution 2: Do something like this Code:
tar cvzf 2010-01-16_00-13_site-2.tgz -C /home/www site-1 Code:
$ dirname /home/www/site-1 /home/www $ basename home/www/site-1 site-1 ![]() Leaving out the "-C" option Code:
# tar cvzf robert /home/robert tar: Removing leading / from absolute path names in the archive home/robert home/robert/.cshrc home/robert/.login home/robert/.mailrc home/robert/.profile home/robert/Maildir home/robert/Maildir/tmp home/robert/Maildir/new home/robert/Maildir/cur home/robert/.exrc Code:
tar cvzf robert -C /home robert robert robert/.cshrc robert/.login robert/.mailrc robert/.profile robert/Maildir robert/Maildir/tmp robert/Maildir/new robert/Maildir/cur robert/.exrc
__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump |
|
||||
|
If you change
Code:
SITES=' /home/www/site-1 /home/www/site-2 /home/www/site-3 ' Code:
SITES=${SITES:-'
/home/www/site-1
/home/www/site-2
/home/www/site-3
'}
$ SITES="/a /b /c"; export SITES; run-script-here. Other variations of possible, if you read the shells manual page about expansions.
__________________
My Journal Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''. |
|
|||
|
You even don't have to export the variables, you could use env(1):
Code:
# env SITES='/usr/local/www/aaa /usr/local/www/bbb' site-backup
__________________
You don't need to be a genius to debug a pf.conf firewall ruleset, you just need the guts to run tcpdump |
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Request for guides | milo974 | General software and network | 1 | 16th December 2009 05:42 PM |
| matts: a sh script to mail files as attachments from the command line | J65nko | Guides | 6 | 12th October 2009 06:24 PM |
| mod_gzip2 not compressing pages | Weaseal | FreeBSD Ports and Packages | 0 | 23rd September 2008 11:56 PM |
| Request for Opinions: A secure way of sharing modules | TerryP | Off-Topic | 2 | 10th August 2008 07:18 PM |
| Create a script to rmove oldest files | disco | Programming | 5 | 14th July 2008 09:25 PM |