<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.jcihosting.com/index.php?action=history&amp;feed=atom&amp;title=Customer_Backups</id>
	<title>Customer Backups - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jcihosting.com/index.php?action=history&amp;feed=atom&amp;title=Customer_Backups"/>
	<link rel="alternate" type="text/html" href="https://wiki.jcihosting.com/index.php?title=Customer_Backups&amp;action=history"/>
	<updated>2026-09-01T07:28:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.jcihosting.com/index.php?title=Customer_Backups&amp;diff=945&amp;oldid=prev</id>
		<title>70.230.212.110 at 00:10, 2 March 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.jcihosting.com/index.php?title=Customer_Backups&amp;diff=945&amp;oldid=prev"/>
		<updated>2013-03-02T00:10:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:10, 1 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;___TOC___&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;__TOC__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Backups are performed for customers upon request. When someone does ask, they should really only be asking for real user data dirs to be backed up, though we won’t refuse any reasonable request.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Backups are performed for customers upon request. When someone does ask, they should really only be asking for real user data dirs to be backed up, though we won’t refuse any reasonable request.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>70.230.212.110</name></author>
	</entry>
	<entry>
		<id>https://wiki.jcihosting.com/index.php?title=Customer_Backups&amp;diff=944&amp;oldid=prev</id>
		<title>70.230.212.110: Created page with &quot;___TOC___  Backups are performed for customers upon request. When someone does ask, they should really only be asking for real user data dirs to be backed up, though we won’...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.jcihosting.com/index.php?title=Customer_Backups&amp;diff=944&amp;oldid=prev"/>
		<updated>2013-03-02T00:10:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;___TOC___  Backups are performed for customers upon request. When someone does ask, they should really only be asking for real user data dirs to be backed up, though we won’...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;___TOC___&lt;br /&gt;
&lt;br /&gt;
Backups are performed for customers upon request. When someone does ask, they should really only be asking for real user data dirs to be backed up, though we won’t refuse any reasonable request. &lt;br /&gt;
&lt;br /&gt;
Our backup program does not follow symlinks so, for instance, if someone asks for backups on FreeBSD, and one of the directories they want backed up is /home, remember that that is just a symlink to /usr/home - so when you enter it into the backup file on their jail you need to enter it as /usr/home,&lt;br /&gt;
&lt;br /&gt;
Backup entries are stored in&lt;br /&gt;
&amp;lt;tt&amp;gt;/usr/local/jail/bin/backup.config&amp;lt;/tt&amp;gt; (FreeBSD)&lt;br /&gt;
&amp;lt;tt&amp;gt;/usr/local/sbin/backup.config&amp;lt;/tt&amp;gt; (linux)&lt;br /&gt;
&lt;br /&gt;
The first line in the file refers to where the backups go on the backup server, the second line is the backup server they go to. Each line beyond that is an actual directory to be  backed up (vb is an alias to vi the backup file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;jail15# vb&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
backupdir=/data/jail15&lt;br /&gt;
server=backup1&lt;br /&gt;
&lt;br /&gt;
## ENTRY /mnt/backup&lt;br /&gt;
## ENTRY /etc&lt;br /&gt;
## ENTRY /usr/local/etc&lt;br /&gt;
## ENTRY /usr/local/jail&lt;br /&gt;
## ENTRY /root/logs&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/etc&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/root&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/usr/home&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When adding new directories, make sure the dirs backing up really exist by ls’ing them&lt;br /&gt;
&lt;br /&gt;
To search for existing backups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;jail15# gb col00214&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/etc&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/root&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/usr/home&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/usr/local&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/var/log&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/www&lt;br /&gt;
## ENTRY /mnt/data1/69.55.238.98-col00214-DIR/var/spool/postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The backup script runs nightly at various times, but generally between midnight at 3am. If the backup script tries to backup a dir that doesn’t exist, an email will be  sent to the support queue.&lt;br /&gt;
&lt;br /&gt;
The mechanism behind backups is thus:&lt;br /&gt;
&lt;br /&gt;
When the backups are to be run, a script called &amp;lt;tt&amp;gt;backup&amp;lt;/tt&amp;gt; is run. It does 2 things:&lt;br /&gt;
* update all our scripts from the repository on backup2&lt;br /&gt;
* start the actual backup script&lt;br /&gt;
&lt;br /&gt;
The backup script reads the config file and rsync’s directories defined against a corresponding directory on the backup server specified. So, if the first line in the config file is &amp;lt;tt&amp;gt;backupdir=/data/jail15&amp;lt;/tt&amp;gt;Then backups are made to &amp;lt;tt&amp;gt;backup1:/data/jail15/0&amp;lt;/tt&amp;gt; &lt;br /&gt;
Because these backups are incremental and destructive, only changed files are updated and files which don’t exist locally are removed from backup1. This makes the backups very fast and efficient. &lt;br /&gt;
&lt;br /&gt;
After backups are made from customer machines to the backup server, a housekeeping script fires off on the backup server which deletes the backups made 7 nights ago, rotates (renames) nights -1 thru -6 “down” in the count, and makes a snapshot of the previous night’s backup. Specifically, here’s what the script does:&lt;br /&gt;
          &amp;lt;pre&amp;gt;rm -fr [dir]/6&lt;br /&gt;
          mv [dir]/5 [dir]/6&lt;br /&gt;
          mv [dir]/4 [dir]/5&lt;br /&gt;
          mv [dir]/3 [dir]/4&lt;br /&gt;
          mv [dir]/2 [dir]/3&lt;br /&gt;
          mv [dir]/1 [dir]/2&lt;br /&gt;
          gcp -al [dir]/0 [dir]/1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means at any point during the day, there are 6-7 days worth of backups for any given machine.&lt;br /&gt;
&lt;br /&gt;
= Restoring backups =&lt;br /&gt;
&lt;br /&gt;
The backups are copied to their respecitve directories on the backup servers nightly, and the houseclean script continuously rotates (effectively deleting all backup files older than 2 days) so it s very important to respond to backup restore requests &amp;#039;&amp;#039;&amp;#039;immediately&amp;#039;&amp;#039;&amp;#039; - if they sit for too long, they could get automatically deleted.&lt;br /&gt;
&lt;br /&gt;
We do not replace the backup files on their system - we simply make and copy the tarball that they require onto their system and put it in their / directory.  When you respond to their email telling them that their backup has been copied onto their system, always tell them that they should place the tarball in a temp directory and explode it there, so they do not overwrite other things already on their system.&lt;br /&gt;
&lt;br /&gt;
Also, it is a good idea to make a temp directory on the backup server and place the last few days of that persons backups in it, so they do not get deleted by the housecleaning script - this is helpful if the person deleted the tarball accidently, or something else goes wrong.&lt;/div&gt;</summary>
		<author><name>70.230.212.110</name></author>
	</entry>
</feed>