  
<div id="snippet_399" class="snippet">
  <h2><a href="/snippets/399-How-to-use-Rake-for-backing-up-MySQL-databases" title="How to use Rake for backing up MySQL databases - Ruby - mysql, rake, backup">How to use Rake for backing up MySQL databases</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted 4 months ago by christian
          
  </div>

  <div class="body">
    <p>This is a customized version of <a href="http://pastie.org/199267">this script</a>:</p>
<p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>find<span class="String">'</span></span>
<span class="line-numbers">   2 </span> 
<span class="line-numbers">   3 </span> namespace <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>db</span> <span class="Keyword">do</span>
<span class="line-numbers">   4 </span> 
<span class="line-numbers">   5 </span>   desc <span class="String"><span class="String">&quot;</span>Backup the database to a file. Options: DIR=base_dir RAILS_ENV=production MAX=20<span class="String">&quot;</span></span>
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span>   task <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>backup</span> =&gt; [<span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>environment</span>] <span class="Keyword">do</span>
<span class="line-numbers">   8 </span>     datestamp <span class="Operator">=</span> <span class="LibraryClassType">Time</span>.<span class="FunctionName">now</span>.<span class="FunctionName">strftime</span>(<span class="String"><span class="String">&quot;</span>%Y-%m-%d_%H-%M-%S<span class="String">&quot;</span></span>)
<span class="line-numbers">   9 </span>     base_path <span class="Operator">=</span> <span class="Variable">ENV</span>[<span class="String"><span class="String">&quot;</span>DIR<span class="String">&quot;</span></span>] <span class="Operator">||</span> <span class="String"><span class="String">&quot;</span>db<span class="String">&quot;</span></span>
<span class="line-numbers">  10 </span>     backup_base <span class="Operator">=</span> <span class="LibraryClassType">File</span>.<span class="FunctionName">join</span>(base_path, <span class="String"><span class="String">'</span>backup<span class="String">'</span></span>)
<span class="line-numbers">  11 </span>     backup_folder <span class="Operator">=</span> <span class="LibraryClassType">File</span>.<span class="FunctionName">join</span>(backup_base, datestamp)
<span class="line-numbers">  12 </span>     backup_file <span class="Operator">=</span> <span class="LibraryClassType">File</span>.<span class="FunctionName">join</span>(backup_folder, <span class="String"><span class="String">&quot;</span><span class="String"><span class="String">#{</span><span class="Variable">RAILS_ENV</span><span class="String">}</span></span>_dump.sql.gz<span class="String">&quot;</span></span>)
<span class="line-numbers">  13 </span>     <span class="LibraryClassType">FileUtils</span>.<span class="FunctionName">mkdir_p</span>(backup_folder)
<span class="line-numbers">  14 </span>     db_config <span class="Operator">=</span> <span class="LibraryClassType">ActiveRecord</span>::<span class="FunctionName">Base</span>.<span class="FunctionName">configurations</span>[<span class="Variable">RAILS_ENV</span>]
<span class="line-numbers">  15 </span>     pass <span class="Operator">=</span> <span class="String"><span class="String">'</span><span class="String">'</span></span>
<span class="line-numbers">  16 </span>     pass <span class="Operator">=</span> <span class="String"><span class="String">'</span>-p<span class="String">'</span></span> <span class="Operator">+</span> db_config[<span class="String"><span class="String">'</span>password<span class="String">'</span></span>] <span class="Keyword">if</span> db_config[<span class="String"><span class="String">'</span>password<span class="String">'</span></span>]
<span class="line-numbers">  17 </span>     cmd <span class="Operator">=</span> <span class="String"><span class="String">&quot;</span>mysqldump -P <span class="String"><span class="String">#{</span>db_config<span class="String">[</span><span class="String"><span class="String">'</span>port<span class="String">'</span></span><span class="String">]</span><span class="String">}</span></span> -h <span class="String"><span class="String">#{</span>db_config<span class="String">[</span><span class="String"><span class="String">'</span>host<span class="String">'</span></span><span class="String">]</span><span class="String">}</span></span> -u <span class="String"><span class="String">#{</span>db_config<span class="String">[</span><span class="String"><span class="String">'</span>username<span class="String">'</span></span><span class="String">]</span><span class="String">}</span></span> <span class="String"><span class="String">#{</span>pass<span class="String">}</span></span> <span class="String"><span class="String">#{</span>db_config<span class="String">[</span><span class="String"><span class="String">'</span>da</span></span></span>
<span class="line-numbers">  18 </span> <span class="String"><span class="String"><span class="String">tabase<span class="String">'</span></span><span class="String">]</span><span class="String">}</span></span> -Q --add-drop-table -O add-locks=FALSE -O lock-tables=FALSE | gzip -c &gt; <span class="String"><span class="String">#{</span>backup_file<span class="String">}</span></span><span class="String">&quot;</span></span>
<span class="line-numbers">  19 </span>     sh cmd
<span class="line-numbers">  20 </span>     dir <span class="Operator">=</span> <span class="LibraryClassType">Dir</span>.<span class="FunctionName">new</span>(backup_base)
<span class="line-numbers">  21 </span>     all_backups <span class="Operator">=</span> dir.<span class="FunctionName">entries</span>[<span class="Number">2</span>..<span class="Operator">-</span><span class="Number">1</span>].<span class="FunctionName">sort</span>.<span class="FunctionName">reverse</span>
<span class="line-numbers">  22 </span>     puts <span class="String"><span class="String">&quot;</span>Created backup: <span class="String"><span class="String">#{</span>backup_file<span class="String">}</span></span><span class="String">&quot;</span></span>
<span class="line-numbers">  23 </span>     max_backups <span class="Operator">=</span> (<span class="Variable">ENV</span>[<span class="String"><span class="String">&quot;</span>MAX<span class="String">&quot;</span></span>] <span class="Operator">||</span> <span class="Number">20</span>).<span class="FunctionName">to_i</span>
<span class="line-numbers">  24 </span>     puts max_backups
<span class="line-numbers">  25 </span>     unwanted_backups <span class="Operator">=</span> all_backups[max_backups..<span class="Operator">-</span><span class="Number">1</span>] <span class="Operator">||</span> []
<span class="line-numbers">  26 </span>     <span class="Keyword">for</span> unwanted_backup <span class="Keyword">in</span> unwanted_backups
<span class="line-numbers">  27 </span>       <span class="LibraryClassType">FileUtils</span>.<span class="FunctionName">rm_rf</span>(<span class="LibraryClassType">File</span>.<span class="FunctionName">join</span>(backup_base, unwanted_backup))
<span class="line-numbers">  28 </span>       puts <span class="String"><span class="String">&quot;</span>deleted <span class="String"><span class="String">#{</span>unwanted_backup<span class="String">}</span></span><span class="String">&quot;</span></span>
<span class="line-numbers">  29 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  30 </span>     puts <span class="String"><span class="String">&quot;</span>Deleted <span class="String"><span class="String">#{</span>unwanted_backups<span class="String"><span class="String">.</span><span class="FunctionName">length</span></span><span class="String">}</span></span> backups, <span class="String"><span class="String">#{</span>all_backups<span class="String"><span class="String">.</span><span class="FunctionName">length</span></span> <span class="Operator">-</span> unwanted_backups<span class="String"><span class="String">.</span><span class="FunctionName">length</span></span><span class="String">}</span></span> backups available<span class="String">&quot;</span></span>
<span class="line-numbers">  31 </span> 
<span class="line-numbers">  32 </span>   <span class="Keyword">end</span>
<span class="line-numbers">  33 </span> 
<span class="line-numbers">  34 </span> <span class="Keyword">end</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/71-mysql">mysql</a>, <a href="/tags/704-rake">rake</a>, <a href="/tags/72-backup">backup</a>
    
    
  </div>
</div>



  
<div id="snippet_338" class="snippet">
  <h2><a href="/snippets/338-How-to-back-up-all-MySQL-database-instances-with-Ruby" title="How to back up all MySQL database instances with Ruby - Ruby - pty, expect, backup, mysql, mysqldump">How to back up all MySQL database instances with Ruby</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted 10 months ago by christian
          
  </div>

  <div class="body">
    <p><pre class="active4d"><span class="line-numbers">   1 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>rubygems<span class="String">'</span></span>
<span class="line-numbers">   2 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>sequel<span class="String">'</span></span>
<span class="line-numbers">   3 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>expect<span class="String">'</span></span>
<span class="line-numbers">   4 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>pty<span class="String">'</span></span>
<span class="line-numbers">   5 </span> <span class="Keyword">require</span> <span class="String"><span class="String">'</span>pp<span class="String">'</span></span>
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span> <span class="LineComment"><span class="LineComment">#</span>$expect_verbose = true </span>
<span class="line-numbers">   8 </span> 
<span class="line-numbers">   9 </span> <span class="Keyword">def</span> <span class="FunctionName">exec_pty</span>(<span class="FunctionArgument">cmd</span>)
<span class="line-numbers">  10 </span>   <span class="Variable">PTY</span>.<span class="FunctionName">spawn</span>(cmd) <span class="Keyword">do </span>|<span class="Variable">reader</span>, <span class="Variable">writer</span>, <span class="Variable">pid</span>|
<span class="line-numbers">  11 </span>     reader.<span class="FunctionName">expect</span>(<span class="String"><span class="String">/</span></span><span class="String">Enter password</span><span class="String"><span class="String">/</span></span>) <span class="Keyword">do </span>|<span class="Variable">line</span>|
<span class="line-numbers">  12 </span>       writer.<span class="FunctionName">puts</span> <span class="String"><span class="String">'</span><span class="String">'</span></span>
<span class="line-numbers">  13 </span>     <span class="Keyword">end</span> 
<span class="line-numbers">  14 </span> 
<span class="line-numbers">  15 </span>     <span class="Keyword">while</span> line<span class="Operator">=</span>reader.<span class="FunctionName">gets</span>
<span class="line-numbers">  16 </span> <span class="LineComment"><span class="LineComment">#</span>      print line</span>
<span class="line-numbers">  17 </span>     <span class="Keyword">end</span>
<span class="line-numbers">  18 </span>   <span class="Keyword">end</span> 
<span class="line-numbers">  19 </span> <span class="Keyword">end</span>
<span class="line-numbers">  20 </span> 
<span class="line-numbers">  21 </span> user      <span class="Operator">=</span> <span class="String"><span class="String">'</span>fuuuuuck<span class="String">'</span></span>
<span class="line-numbers">  22 </span> password  <span class="Operator">=</span> <span class="String"><span class="String">'</span><span class="String">'</span></span>
<span class="line-numbers">  23 </span> host      <span class="Operator">=</span> <span class="String"><span class="String">'</span>localhost<span class="String">'</span></span>
<span class="line-numbers">  24 </span> encoding  <span class="Operator">=</span> <span class="String"><span class="String">'</span>utf8<span class="String">'</span></span>
<span class="line-numbers">  25 </span> dir       <span class="Operator">=</span> <span class="String"><span class="String">'</span>/tmp<span class="String">'</span></span>
<span class="line-numbers">  26 </span> timestamp <span class="Operator">=</span> <span class="LibraryClassType">Time</span>.<span class="FunctionName">now</span>.<span class="FunctionName">strftime</span>(<span class="String"><span class="String">'</span>%d-%m-%y<span class="String">'</span></span>)
<span class="line-numbers">  27 </span> 
<span class="line-numbers">  28 </span> connection <span class="Operator">=</span> <span class="LibraryClassType">Sequel</span>.<span class="FunctionName">mysql</span> <span class="BuiltInConstant">nil</span>, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>user</span> =&gt; user, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>password</span> =&gt; password, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>host</span> =&gt; host, <span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>encoding</span> =&gt; encoding
<span class="line-numbers">  29 </span> 
<span class="line-numbers">  30 </span> databases <span class="Operator">=</span> []
<span class="line-numbers">  31 </span> connection[<span class="String"><span class="String">'</span>show databases;<span class="String">'</span></span>].<span class="FunctionName">each</span> <span class="Keyword">do </span>|<span class="Variable">db</span>|
<span class="line-numbers">  32 </span>   databases <span class="Operator">&lt;&lt;</span> db[<span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>Database</span>]
<span class="line-numbers">  33 </span> <span class="Keyword">end</span>
<span class="line-numbers">  34 </span> databases <span class="Operator">=</span> databases <span class="Operator">-</span> [<span class="String"><span class="String">'</span>mysql<span class="String">'</span></span>, <span class="String"><span class="String">'</span>test<span class="String">'</span></span>, <span class="String"><span class="String">'</span>information_schema<span class="String">'</span></span>]
<span class="line-numbers">  35 </span> 
<span class="line-numbers">  36 </span> 
<span class="line-numbers">  37 </span> databases.<span class="FunctionName">each</span> <span class="Keyword">do </span>|<span class="Variable">db</span>|
<span class="line-numbers">  38 </span> 
<span class="line-numbers">  39 </span>   file <span class="Operator">=</span> <span class="LibraryClassType">File</span>.<span class="FunctionName">join</span>(dir, <span class="String"><span class="String">&quot;</span><span class="String"><span class="String">#{</span>db<span class="String">}</span></span>_<span class="String"><span class="String">#{</span>timestamp<span class="String">}</span></span>.sql<span class="String">&quot;</span></span>)
<span class="line-numbers">  40 </span>   p file
<span class="line-numbers">  41 </span>   cmd <span class="Operator">=</span> <span class="String"><span class="String">&quot;</span>mysqldump -u<span class="String"><span class="String">#{</span>user<span class="String">}</span></span> -p<span class="String"><span class="String">#{</span>password<span class="String">}</span></span> -h<span class="String"><span class="String">#{</span>host<span class="String">}</span></span> -Q -c -C --add-drop-table --add-locks --quick --lock-tables <span class="String"><span class="String">#{</span>db<span class="String">}</span></span> &gt; <span class="String"><span class="String">#{</span>file<span class="String">}</span></span><span class="String">&quot;</span></span>
<span class="line-numbers">  42 </span> 
<span class="line-numbers">  43 </span>   
<span class="line-numbers">  44 </span>   result <span class="Operator">=</span> <span class="FunctionName">exec_pty</span>(cmd)
<span class="line-numbers">  45 </span> <span class="Keyword">end</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/744-pty">pty</a>, <a href="/tags/523-expect">expect</a>, <a href="/tags/72-backup">backup</a>, <a href="/tags/71-mysql">mysql</a>, <a href="/tags/745-mysqldump">mysqldump</a>
    
    
  </div>
</div>



  
<div id="snippet_251" class="snippet">
  <h2><a href="/snippets/251-How-to-backup-ActiveRecord-model-data-to-YAML-with-ar-fixtures" title="How to backup ActiveRecord model data to YAML with ar_fixtures - Ruby - fixtures, backup, activerecord, rails, yaml">How to backup ActiveRecord model data to YAML with ar_fixtures</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/124-Ruby">
      Ruby</a> posted about 1 year ago by christian
          
  </div>

  <div class="body">
    <p>First install the plugin:</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> script<span class="Operator">/</span>plugin install http<span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>/</span><span class="Operator">/</span>github.<span class="FunctionName">com</span><span class="Operator">/</span>mileszs<span class="Operator">/</span>ar_fixtures<span class="Operator">/</span>commits<span class="Operator">/</span>master 
</pre></p>


	<p>Then dump data for all models with:</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> rake db<span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>data</span><span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>dump</span><span class="UserDefinedConstant"><span class="UserDefinedConstant">:</span>all</span>
</pre></p>


	<p>There&#8217;s a task for loading the data into the database, see rake -T for more information.</p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/569-fixtures">fixtures</a>, <a href="/tags/72-backup">backup</a>, <a href="/tags/490-activerecord">activerecord</a>, <a href="/tags/9-rails">rails</a>, <a href="/tags/568-yaml">yaml</a>
    
    
  </div>
</div>



  
<div id="snippet_193" class="snippet">
  <h2><a href="/snippets/193-MySQL-backup-with-Auto-MySQL-Backup" title="MySQL backup with Auto MySQL Backup - Shell Script (Bash) - mysql, backup, rotate">MySQL backup with Auto MySQL Backup</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted about 1 year ago by christian
          
  </div>

  <div class="body">
    <p>http://sourceforge.net/projects/automysqlbackup/</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> cd /etc/mysql
<span class="line-numbers">   2 </span> wget http://garr.dl.sourceforge.net/sourceforge/automysqlbackup/automysqlbackup.sh.2.5
<span class="line-numbers">   3 </span> 
<span class="line-numbers">   4 </span> ln -s automysqlbackup.sh.2.5 backup-script
<span class="line-numbers">   5 </span> chmod 740 backup-script
<span class="line-numbers">   6 </span> 
<span class="line-numbers">   7 </span> vim backup-script
</pre></p>


	<p>Next tell cron to run it 4 in the morning:
<pre class="active4d"><span class="line-numbers">   1 </span> crontab -e
</pre></p>


	<p>Add the following line:</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> 0 4 * * * /etc/mysql/backup-script
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/71-mysql">mysql</a>, <a href="/tags/72-backup">backup</a>, <a href="/tags/459-rotate">rotate</a>
    
    
  </div>
</div>



  
<div id="snippet_124" class="snippet">
  <h2><a href="/snippets/124-How-to-export-and-import-Oracle-schemas-or-backup-Oracle-databases" title="How to export and import Oracle schemas, or backup Oracle databases - Shell Script (Bash) - import, export, oracle, dump, backup">How to export and import Oracle schemas, or backup Oracle databases</a></h2>
  <div class="details">
    <a style="background-color: #FFFF94;" href="http://snippets.aktagon.com/languages/131-Shell-Script-Bash-">
      Shell Script (Bash)</a> posted over 2 years ago by christian
          
  </div>

  <div class="body">
    <p>You can use the exp and imp executables to perform data backup and restoration.</p>


	<p><pre class="active4d"><span class="line-numbers">   1 </span> -- Export
<span class="line-numbers">   2 </span> exp <span class="Operator">&lt;</span>username<span class="Operator">&gt;</span>/<span class="Operator">&lt;</span>password<span class="Operator">&gt;</span>@<span class="Operator">&lt;</span>server<span class="Operator">&gt;</span> file=data.dmp consistent=y grants=no statistics=none
<span class="line-numbers">   3 </span> 
<span class="line-numbers">   4 </span> -- Import
<span class="line-numbers">   5 </span> imp <span class="Operator">&lt;</span>username<span class="Operator">&gt;</span>/<span class="Operator">&lt;</span>password<span class="Operator">&gt;</span>@<span class="Operator">&lt;</span>server<span class="Operator">&gt;</span> file=data.dmp fromuser=<span class="Operator">&lt;</span>source_username<span class="Operator">&gt;</span> touser=<span class="Operator">&lt;</span>username<span class="Operator">&gt;</span>
</pre></p>
  </div>

  <div style="font-size: 0.8em;margin:0.5em;">
    
      Tagged <a href="/tags/316-import">import</a>, <a href="/tags/317-export">export</a>, <a href="/tags/86-oracle">oracle</a>, <a href="/tags/318-dump">dump</a>, <a href="/tags/72-backup">backup</a>
    
    
  </div>
</div>




<div class="pagination"><span class="disabled">&laquo; Previous</span> <span class="current">1</span> <a href="/tags/show/72-backup/page/2">2</a> <a href="/tags/show/72-backup/page/2">Next &raquo;</a></div>

