[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

backup

Posted on 2006-11-21
6
Medium Priority
?
248 Views
Last Modified: 2010-04-20
hello,
I would like to create a very simple script to backup my websites!!
this is what I normally do each line by hand

cd /home/virtual/domain1.com/var/www
tar czf domain1.tar.gz html
tar czf domain1_cgi-bin.tar.gz cgi-bin

cd /home/virtual/domain2.com/var/www
tar czf domain2.tar.gz html
tar czf domain2_cgi-bin.tar.gz cgi-bin

cd /home/virtual/domain3.com/var/www
tar czf domain3.tar.gz html
tar czf domain3_cgi-bin.tar.gz cgi-bin

is there a way to automate that process?
if so I want to run each line after the other,
 not all at the same time, I want to keep the server load
very low so when the first backup finishes I want
to do domain2 and so on, when the process finishes
I would like to receive an email sent by sendmail!

can someone please help me?
0
Comment
Question by:Sabrin
6 Comments
 
LVL 10

Expert Comment

by:ssvl
ID: 17993607
first you have to create a script  

add all the above backup commands to that script ( by default script runs one command after one)

for eg you want to run the backup at 1 am every day.
run as root
#crontab -e

1 1 * * *  sh /path/to/script



0
 
LVL 14

Expert Comment

by:ppfoong
ID: 17993631

Create a script and put it in /usr/local/bin.

Let's call it backupsite.sh.

The content should be:

#!/bin/sh
tar czf $1.tar.gz /home/virtual/$1.com/var/www
tar czf $1_cgi-bin.tar.gz /home/virtual/$1.com/var/cgi-bin

Then, create another script, call it mybackup.sh.

#!/bin/sh
/usr/local/bin/backupsite.sh domain1
/usr/local/bin/backupsite.sh domain2
/usr/local/bin/backupsite.sh domain3


But as a better alternative, which is able to automate the backup process as well as send out email to you, you can make use of rdiff-backup.

http://www.nongnu.org/rdiff-backup/

The backup command will be (create the /backup directory first):

rdiff-backup --print-statistics /home/virtual /backup > /tmp/backup.statisticfile
mail youremail@address.com -s "Backup result" < /tmp/backup.statisticfile

0
 
LVL 8

Accepted Solution

by:
John Kawakami earned 2000 total points
ID: 18000545
The most straightforward way is to turn your commands into a script.  Paste the following into a shell window:

----------------------------------------------------------start--------
cat > backup.sh
#!/bin/sh
cd /home/virtual/domain1.com/var/www
tar czf domain1.tar.gz html
tar czf domain1_cgi-bin.tar.gz cgi-bin

cd /home/virtual/domain2.com/var/www
tar czf domain2.tar.gz html
tar czf domain2_cgi-bin.tar.gz cgi-bin

cd /home/virtual/domain3.com/var/www
tar czf domain3.tar.gz html
tar czf domain3_cgi-bin.tar.gz cgi-bin

echo backup ran
----------------------------------------------------------end--------

Then do this:
chmod u+x backup.sh

Then read the man page for cron and crontab, and add this line:

1 3 * * * /path/to/backup.sh

That should run the backup script at 3AM daily, and send you an email about it.  (Cron automatically sends emails.  If it doesn't read the cron manpage for info about how to do that.)

Rdiff is good if you want live copies of the backup files.

Also, look into archivers that can selectively update files within the backup archive.  Read the gnu tar man page.
0
NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

 

Author Comment

by:Sabrin
ID: 18000674
thanks jk2001, will your code run the backups one by one ?
0
 

Author Comment

by:Sabrin
ID: 18000675
jk2001, when the tar is done with domain1 then it goes to domain2?
0
 
LVL 8

Expert Comment

by:John Kawakami
ID: 18002815
yes.  it's a "replay" of what you typed.

Also, before you put it in the cron, run the script from the command line and see that it works without errors.

ppfoong's solution is more flexible, but mine is the kind I'd normally use.  I prefer the literal code sometimes.
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
Often times it's very very easy to extend a volume on a Linux instance in AWS, but impossible to shrink it. I wanted to contribute to the experts-exchange community a way of providing a procedure that works on an AWS instance. It can also be used on…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Suggested Courses
Course of the Month19 days, 13 hours left to enroll

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question