Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Centos

Posted on 2013-11-26
3
Medium Priority
?
237 Views
Last Modified: 2014-01-14
Hi i need to backup all my mysql database using ssh. How i can do it. I have 68 databases and i know how i can do it one by one. I need some solution to do it automatic
0
Comment
Question by:umaxim
3 Comments
 
LVL 40

Assisted Solution

by:omarfarid
omarfarid earned 668 total points
ID: 39679729
you can do this in two ways:

1- set trust (no passwords to login remotely, it will be based on keys generated and exchanged between the systems) between your account on your system and the account on the remote system.

please see

http://www.phys.ufl.edu/cms/emu/fast/FAST-DAQ/ssh_between_2.html

Then you can use

ssh username@hostname1 "command"

The above can be automated with a loop to go through different remote servers

2- If you don't want to set trust between systems, then you can use expect to automate login (response to password prompts etc.

Please see link below

http://www.admin-magazine.com/Articles/Automating-with-Expect-Scripts
0
 
LVL 19

Assisted Solution

by:xterm
xterm earned 664 total points
ID: 39679837
I've put a little script below that you can modify - it will do an incremental backup over rsync so it will only copy what has changed since last time you backed up.

To run it each night at 1AM, put the following in /etc/crontab:
0 1 * * * root /path/to/mybackup.sh

Currently, it will prompt you for your password each time, so before you cron it, you will need to set up passwordless ssh.  This is pretty simple.  Go into the .ssh folder in the home directory of the user who will be doing the backup (probably root, but perhaps mysql) and find the file called id_rsa.pub  Now copy that file over to the backup server, into the home directory of the user that you're logging in as.  Find the file .ssh/authorized_keys and append your public key to the end of that file with this command:

cat id_rsa.pub >> authorized_keys

The next time you ssh in, it should no longer prompt you for a password.  BTW, if the file authorized_keys did not exist previously, you can still use the command above to create it.  But you will need to do this command to give it the right permissions:

chmod 600 authorized_keys

Let us know if you get stuck, and we'll help you through it!

#!/bin/sh

# mybackup.sh (sample name for this script)

# PUT ALL THE DATABASE FOLDERS YOU WANT IN HERE
DBDIRS="/var/lib/mysql /other/mysql/directory"
KEEPARGS="--delete"

for DBDIR in `echo $DBDIRS`;
do
        rsync -az $KEEPARGS $DBDIR -e 'ssh' myusername@otherhostname:/backups/databases
done

Open in new window

0
 
LVL 15

Accepted Solution

by:
Insoftservice earned 668 total points
ID: 39686502
Why can't you use sqlyog or some gui tool.
I am using sqlyog as it has feature of schedule backup and making zip of it.
so, file size issue gets automatically resolved
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

How many times have you wanted to quickly do the same thing to a list but found yourself typing it again and again? I first figured out a small time saver with the up arrow to recall the last command but that can only get you so far if you have a bi…
It’s 2016. Password authentication should be dead — or at least close to dying. But, unfortunately, it has not traversed Quagga stage yet. Using password authentication is like laundering hotel guest linens with a washboard — it’s Passé.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Suggested Courses
Course of the Month11 days, 19 hours left to enroll

916 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