snipt

Ctrl+h for KB shortcuts

Bash

A full databases backup

#! /bin/sh

# -------------------------------------
#
# This script is freely distributed under the GPL
# -------------------------------------

# Configuration variables
# -------------------------------------

USER='MySQL-USER'
PASS='MySQL-PASSWORD'
HOST='localhost'
BACKUPDIR='/var/backups/mysql'

# Script execution
# -------------------------------------

data=`date +%Y%m%d`

for i in `mysql -u $USER -h $HOST -p$PASS -Bse 'show databases'`; do
  echo 'Processing '$i

  mysqldump --add-drop-table -u$USER -p$PASS $i |  gzip -9 > $BACKUPDIR/$data-$i.sql.gz
done

find $BACKUPDIR -type f -mtime +7 -exec rm -f {} \;
https://snipt.net/embed/988e4d697c74e64ab00f0f466566b913/
/raw/988e4d697c74e64ab00f0f466566b913/
988e4d697c74e64ab00f0f466566b913
bash
Bash
27
2019-06-18T13:35:50
True
False
False
Nov 07, 2012 at 03:25 PM
/api/public/snipt/49774/
a-full-databases-backup
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a> <a href="#L-22">22</a> <a href="#L-23">23</a> <a href="#L-24">24</a> <a href="#L-25">25</a> <a href="#L-26">26</a> <a href="#L-27">27</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="ch">#! /bin/sh</span> </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a><span class="c1"># -------------------------------------</span> </span><span id="L-4"><a name="L-4"></a><span class="c1">#</span> </span><span id="L-5"><a name="L-5"></a><span class="c1"># This script is freely distributed under the GPL</span> </span><span id="L-6"><a name="L-6"></a><span class="c1"># -------------------------------------</span> </span><span id="L-7"><a name="L-7"></a> </span><span id="L-8"><a name="L-8"></a><span class="c1"># Configuration variables</span> </span><span id="L-9"><a name="L-9"></a><span class="c1"># -------------------------------------</span> </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a><span class="nv">USER</span><span class="o">=</span><span class="s1">&#39;MySQL-USER&#39;</span> </span><span id="L-12"><a name="L-12"></a><span class="nv">PASS</span><span class="o">=</span><span class="s1">&#39;MySQL-PASSWORD&#39;</span> </span><span id="L-13"><a name="L-13"></a><span class="nv">HOST</span><span class="o">=</span><span class="s1">&#39;localhost&#39;</span> </span><span id="L-14"><a name="L-14"></a><span class="nv">BACKUPDIR</span><span class="o">=</span><span class="s1">&#39;/var/backups/mysql&#39;</span> </span><span id="L-15"><a name="L-15"></a> </span><span id="L-16"><a name="L-16"></a><span class="c1"># Script execution</span> </span><span id="L-17"><a name="L-17"></a><span class="c1"># -------------------------------------</span> </span><span id="L-18"><a name="L-18"></a> </span><span id="L-19"><a name="L-19"></a><span class="nv">data</span><span class="o">=</span><span class="sb">`</span>date +%Y%m%d<span class="sb">`</span> </span><span id="L-20"><a name="L-20"></a> </span><span id="L-21"><a name="L-21"></a><span class="k">for</span> i in <span class="sb">`</span>mysql -u <span class="nv">$USER</span> -h <span class="nv">$HOST</span> -p<span class="nv">$PASS</span> -Bse <span class="s1">&#39;show databases&#39;</span><span class="sb">`</span><span class="p">;</span> <span class="k">do</span> </span><span id="L-22"><a name="L-22"></a> <span class="nb">echo</span> <span class="s1">&#39;Processing &#39;</span><span class="nv">$i</span> </span><span id="L-23"><a name="L-23"></a> </span><span id="L-24"><a name="L-24"></a> mysqldump --add-drop-table -u<span class="nv">$USER</span> -p<span class="nv">$PASS</span> <span class="nv">$i</span> <span class="p">|</span> gzip -9 &gt; <span class="nv">$BACKUPDIR</span>/<span class="nv">$data</span>-<span class="nv">$i</span>.sql.gz </span><span id="L-25"><a name="L-25"></a><span class="k">done</span> </span><span id="L-26"><a name="L-26"></a> </span><span id="L-27"><a name="L-27"></a>find <span class="nv">$BACKUPDIR</span> -type f -mtime +7 -exec rm -f <span class="o">{}</span> <span class="se">\;</span> </span></pre></div> </td></tr></table>
backup, bash, mysql