<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.stoney-cloud.org/w/index.php?action=history&amp;feed=atom&amp;title=stoney_backup%3A_Service_Software</id>
	<title>stoney backup: Service Software - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stoney-cloud.org/w/index.php?action=history&amp;feed=atom&amp;title=stoney_backup%3A_Service_Software"/>
	<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;action=history"/>
	<updated>2026-04-14T22:39:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3724&amp;oldid=prev</id>
		<title>Pat: /* writeAccountSize.pl */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3724&amp;oldid=prev"/>
		<updated>2014-06-26T12:15:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;writeAccountSize.pl&lt;/span&gt;&lt;/span&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 14:15, 26 June 2014&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-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&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;== writeAccountSize.pl ==&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;== writeAccountSize.pl ==&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;div&gt;This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/writeAccountSize.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package and does the following:&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;This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/writeAccountSize.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package and does the following:&lt;/div&gt;&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;@PAT: Please add a link to the current Git repository. --[[User:Chrigu|Chrigu]] ([[User talk:Chrigu|talk]]) 10:15, 19 June 2014 (CEST)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;* Calculates the used disk space (backup and iterations) for a given account and writes the corresponding values to:&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;* Calculates the used disk space (backup and iterations) for a given account and writes the corresponding values to:&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;div&gt;*# The LDAP backend (used by the selfcare webinterface to display quota information):&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;*# The LDAP backend (used by the selfcare webinterface to display quota information):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3714:rev-3724 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3714&amp;oldid=prev</id>
		<title>Pat: /* rsnapshot wrapper bash scripts */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3714&amp;oldid=prev"/>
		<updated>2014-06-26T07:28:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;rsnapshot wrapper bash scripts&lt;/span&gt;&lt;/span&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 09:28, 26 June 2014&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-l738&quot;&gt;Line 738:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 738:&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;&amp;lt;/pre&amp;gt;&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;&amp;lt;/pre&amp;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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;== snapshotWrapper.pl ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;As the [[stoney_backup:_Service_Software#snapshot.pl | snapshot.pl]] script needs to be called for each interval sequentially (see [http://www.rsnapshot.org/rsnapshot.html#usage rsnapshot] for more information about rsnapshot execution) a script is needed which does the following logic&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* Is today the first day of a month?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;** Yes: Is today sunday?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;*** Yes: Execute monthly then weekly then daily rsnapshots using the snapshot.pl script (but wait for each interval to finish before starting the next)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;*** No: Execute monthly then daily rsnapshots using the snapshot.pl script (but wait for monthly interval to finish before starting the daily)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;** No: Is today sunday?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;*** Yes: Execute weekly then daily rsnapshots using the snapshot.pl script (but wait for weekly interval to finish before starting the daily)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;*** No: Execute daily rsnapshots using the snapshot.pl script&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;This is all the snapshotWrapper.pl script does. It calls the [[stoney_backup:_Service_Software#snapshot.pl | snapshot.pl]] with the correct intervals for the given day sequentially&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* Pod documentation:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&amp;lt;pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;NAME&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    snapshot.pl&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;DESCRIPTION&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    This script ensures that the rsnapshot processes for the different&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    intervals (daily, weekly and monthly) are running sequentially. To do&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    so, the script gets todays date and performs some checks:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    Is today the first day of the month?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        Execute the monthly snapshots and wait for this process to finish.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        Check if today is sunday, if yes execute the weekly snapshots wait&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        for the process to finish and finally execute the daily snapshots.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        If today is not sunday, only execute the daily snapshots.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    Is today sunday?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        Execute the weekly snapshots and wait for this process to finsh.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        Then execute the daily snapshots.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    If no of the above checks were successful&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        Simply execute the daily snapshots.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    The checks are performed in the above mentioned order, if one check is&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    successful, the following criterias are not checked anymore. That is how&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    one can ensure that all necessary rsnapshot processes run squentially&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;USAGE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    ./snapshotWrapper.pl&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;CREATED&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    2014-06-19 pat.klaey@stepping-stone.ch created&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;VERSION&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    2014-06-19 pat.klaey@stepping-stone.ch created&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;INCORPORATED CODE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;    Incorporated code with use:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        warnings;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        strict;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        DateTime;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        PerlUtil::Logging;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;        File::Basename;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&amp;lt;/pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&#039;&#039;&#039;Note&#039;&#039;&#039;: This script does not need any configuration.&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;div&gt;== rsnapshot wrapper bash scripts ==&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;== rsnapshot wrapper bash scripts ==&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;div&gt;There are two rsnapshot wrapper scripts (these are bash scripts), they are installed by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package:&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;There are two rsnapshot wrapper scripts (these are bash scripts), they are installed by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3713:rev-3714 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3713&amp;oldid=prev</id>
		<title>Pat: /* Cronjobs */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3713&amp;oldid=prev"/>
		<updated>2014-06-26T07:06:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Cronjobs&lt;/span&gt;&lt;/span&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 09:06, 26 June 2014&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-l352&quot;&gt;Line 352:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 352:&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;As you can see, the total used space has risen to 39.0625.&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;As you can see, the total used space has risen to 39.0625.&lt;/div&gt;&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;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;=== Cronjobs ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;After making sure, that everything worked as planned, you can update your crontab entry:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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; crontab -e&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;&amp;lt;pre&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;...&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;# Rsnapshot for all users&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;30 22 * * * /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;15 22 * * sun /usr/libexec/backup-utils/snapshot.pl --interval weekly&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;00 22 1 * * /usr/libexec/backup-utils/snapshot.pl --interval monthly&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;...&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;&amp;lt;/pre&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;* TBD: Maybe this is not optimal if there is a lot of data to rotate. In this case, it might be that for example weekly and daily snapshot both run at the same time what might lead to strange results. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;* Workarounds: &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;** Simple/short version: Instead one could create another wrapper script which is called everyday and does some simple logic:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;** Is today the first day of a month? &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;*** Yes: Is today sunday? &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;**** Yes: Execute monthly then weekly then daily rsnapshots using the snapshot.pl script (but wait for each interval to finish before starting the next)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;**** No: Execute monthly then daily rsnapshots using the snapshot.pl script (but wait for monthly interval to finish before starting the daily)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;*** No: Is today sunday?&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;**** Yes: Execute weekly then daily rsnapshots using the snapshot.pl script (but wait for weekly interval to finish before starting the daily)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;**** No: Execute daily rsnapshots using the snapshot.pl script&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;** Complex/long version: Adapt the snapshot.pl script and call it every day without interval parameter. The script does the logic described above.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;This avoids the above mentioned collision&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;(Complex) / short version: rule via cronjobs:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;&amp;lt;pre&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;# Rsnapshot for all users&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;30 22 * * 1-6 [ $( date +\%d ) -gt 1 ] &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;15 22 * * 7 [ $( date +\%d ) -gt 1 ] &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval weekly &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;00 22 1 * * /usr/libexec/backup-utils/snapshot.pl --interval monthly &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval weekly &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;...&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&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;&amp;lt;/pre&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;== scheduleWarning.pl ==&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;== scheduleWarning.pl ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3694:rev-3713 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3694&amp;oldid=prev</id>
		<title>Pat: /* stoney backup Service Software */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3694&amp;oldid=prev"/>
		<updated>2014-06-19T15:14:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;stoney backup Service Software&lt;/span&gt;&lt;/span&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:14, 19 June 2014&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-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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; 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;All these scripts are installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils]]).&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;All these scripts are installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils]]). &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The source code can be found on [https://github.com/stepping-stone/backup-utils github] &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;== writeAccountSize.pl ==&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;== writeAccountSize.pl ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3692:rev-3694 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3692&amp;oldid=prev</id>
		<title>Pat: /* stoney backup Service Software */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3692&amp;oldid=prev"/>
		<updated>2014-06-19T10:05:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;stoney backup Service Software&lt;/span&gt;&lt;/span&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 12:05, 19 June 2014&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-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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; 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;All these scripts are installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils]]).&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;All these scripts are installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&amp;lt;&lt;/ins&gt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils]]).&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;== writeAccountSize.pl ==&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;== writeAccountSize.pl ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3691:rev-3692 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3691&amp;oldid=prev</id>
		<title>Pat: /* stoney backup Service Software */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3691&amp;oldid=prev"/>
		<updated>2014-06-19T10:05:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;stoney backup Service Software&lt;/span&gt;&lt;/span&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 12:05, 19 June 2014&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-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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; 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;All these scripts are installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/writeAccountSize.pl&amp;lt;&lt;/del&gt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils ]]).&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;All these scripts are installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils]]).&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;== writeAccountSize.pl ==&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;== writeAccountSize.pl ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3690:rev-3691 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3690&amp;oldid=prev</id>
		<title>Pat: /* stoney backup Service Software */</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3690&amp;oldid=prev"/>
		<updated>2014-06-19T10:04:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;stoney backup Service Software&lt;/span&gt;&lt;/span&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 12:04, 19 June 2014&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-l8&quot;&gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&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;* Inform the reseller, customer or user (depending on the settings in the LDAP directory) via mail, if the quota limit has been reached.&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;* Inform the reseller, customer or user (depending on the settings in the LDAP directory) via mail, if the quota limit has been reached.&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;div&gt;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&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;* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;All these scripts are installed to &amp;lt;code&gt;/usr/libexec/backup-utils/writeAccountSize.pl&amp;lt;/code&gt; by the &amp;lt;code&gt;sys-apps/sst-backup-utils&amp;lt;/code&gt; package (see [[stoney_backup:_Server_set-up#backup_utils | backup-utils ]]).&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;== writeAccountSize.pl ==&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;== writeAccountSize.pl ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-3687:rev-3690 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3687&amp;oldid=prev</id>
		<title>Pat: Created page with &quot;= stoney backup Service Software = The stoney backup Service comes along with multiple scripts which help you to manage and monitor your backup server and accounts:   We use r...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=stoney_backup:_Service_Software&amp;diff=3687&amp;oldid=prev"/>
		<updated>2014-06-19T10:01:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= stoney backup Service Software = The stoney backup Service comes along with multiple scripts which help you to manage and monitor your backup server and accounts:   We use r...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= stoney backup Service Software =&lt;br /&gt;
The stoney backup Service comes along with multiple scripts which help you to manage and monitor your backup server and accounts: &lt;br /&gt;
&lt;br /&gt;
We use rsnapshot - remote filesystem snapshot utility for the actual snapshots and a handful of wrapper scripts, that do things like:&lt;br /&gt;
* Read the users and their settings from the LDAP directory.&lt;br /&gt;
* Execute rsnapshot according to the users settings.&lt;br /&gt;
* Write the backup quotas backup (incoming), iterations (.snapshots) and free space to the users local backupSize file and update the LDAP directory.&lt;br /&gt;
* Inform the reseller, customer or user (depending on the settings in the LDAP directory) via mail, if the quota limit has been reached.&lt;br /&gt;
* Depending on the users settings in the LDAP directory, warning mail will be sent to the reseller, customer or user, if a backup was not executed on time.&lt;br /&gt;
&lt;br /&gt;
== writeAccountSize.pl ==&lt;br /&gt;
This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/writeAccountSize.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package and does the following:&lt;br /&gt;
@PAT: Please add a link to the current Git repository. --[[User:Chrigu|Chrigu]] ([[User talk:Chrigu|talk]]) 10:15, 19 June 2014 (CEST)&lt;br /&gt;
* Calculates the used disk space (backup and iterations) for a given account and writes the corresponding values to:&lt;br /&gt;
*# The LDAP backend (used by the selfcare webinterface to display quota information):&lt;br /&gt;
*#* Backup space used (sstBackupSize): The disk space the account uses for the backup itself (disk space used under the &amp;lt;code&amp;gt;incoming&amp;lt;/code&amp;gt; folder of the users chroot-home directory)&lt;br /&gt;
*#* Snapshot space used (sstIncrementSize): The disk space the account uses for the iterations (disk space under the &amp;lt;code&amp;gt;.snapshot&amp;lt;/code&amp;gt; folder of the users chroot-home directory)&lt;br /&gt;
*# The file &amp;lt;code&amp;gt;etc/backupSize&amp;lt;/code&amp;gt; of the accounts chroot (used by the Sepiola Online Backup client):&lt;br /&gt;
* Checks if the user and/or reseller must be notified that there is no more disk space left for the given account&lt;br /&gt;
** Checks if the notification flag was passed, if not no notification will be triggered&lt;br /&gt;
** Calculates the used disk space (backup and iterations) in percentage&lt;br /&gt;
** Reads the notification threshold value from the LDAP backed&lt;br /&gt;
** If the disk space used (in percentage) is bigger than the value retrieved from the LDAP backend start the [[stoney_cloud:_Notification_Architecture | notification]] process with&lt;br /&gt;
*** Product: Given account UID&lt;br /&gt;
*** Service: Backup&lt;br /&gt;
*** Problem: Quota&lt;br /&gt;
* Pod documentation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    writeAccountSize.pl&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This Script gets quota information from filesystem, size of incoming and&lt;br /&gt;
    snapshots directories, write the data to a file and the LDAP backend and&lt;br /&gt;
    sends an e-mail message for each account that is over quota to users&lt;br /&gt;
    e-mail address (from ldap directory) if notification flag is passed.&lt;br /&gt;
&lt;br /&gt;
    The configuration file for this script is stored in the backup-utils&lt;br /&gt;
    configuration directory (/etc/backup-utils/) and is called&lt;br /&gt;
    writeAccountSize.conf.&lt;br /&gt;
&lt;br /&gt;
    The script needs access to the quota program to get quota information.&lt;br /&gt;
    The script needs ldap access to get users e-mail address and quota&lt;br /&gt;
    information. The script uses syslog for logging purposes.&lt;br /&gt;
&lt;br /&gt;
    Command Line Interface (CLI) parameters:&lt;br /&gt;
&lt;br /&gt;
    -C configfile&lt;br /&gt;
        The configuration file.&lt;br /&gt;
&lt;br /&gt;
    -U uid&lt;br /&gt;
        The user id.&lt;br /&gt;
&lt;br /&gt;
    -n notification&lt;br /&gt;
        Start notification process if quota threshold is reached&lt;br /&gt;
&lt;br /&gt;
    -d debug&lt;br /&gt;
        Turns the debug mode on.&lt;br /&gt;
&lt;br /&gt;
    -h help&lt;br /&gt;
        This online help.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
    writeAccountSize.pl -U uid [-C configuration file ] []-d debug] [-h&lt;br /&gt;
    help] [-n]&lt;br /&gt;
&lt;br /&gt;
CREATED&lt;br /&gt;
    2009-04-16 michael.rhyner@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
VERSION&lt;br /&gt;
    2009-04-16 michael.rhyner@stepping-stone.ch created&lt;br /&gt;
    2009-04-30 michael.rhyner@stepping-stone.ch changed position based quota&lt;br /&gt;
    output parsing with correctly parsed elements&lt;br /&gt;
    2009-06-15 michael.rhyner@stepping-stone.ch added over quota check and&lt;br /&gt;
    sending e-mail&lt;br /&gt;
    2009-06-16 michael.rhyner@stepping-stone.ch renamed script and make it&lt;br /&gt;
    more general usable (e.g. for online backup, online storage, ...)&lt;br /&gt;
    2009-06-17 michael.rhyner@stepping-stone.ch changed mail message to read&lt;br /&gt;
    from a text file instead from configuration parameter&lt;br /&gt;
    2009-06-18 michael.rhyner@stepping-stone.ch corrected wrong regex to&lt;br /&gt;
    weed out the asterisk (*) in getQuotaSize&lt;br /&gt;
    2009-06-19 michael.rhyner@stepping-stone.ch corrected wrong evaluation&lt;br /&gt;
    success from subroutines and avoid message output when not in debug mode&lt;br /&gt;
    2009-06-22 michael.rhyner@stepping-stone.ch getQuotaSize: return&lt;br /&gt;
    immediately if no quota was set&lt;br /&gt;
    2009-06-24 michael.rhyner@stepping-stone.ch alert when used certain&lt;br /&gt;
    percentge of allowed space instead of more than allowed space&lt;br /&gt;
    2009-06-26 michael.rhyner@stepping-stone.ch values are presented in&lt;br /&gt;
    Gigabytes within notification message&lt;br /&gt;
    2009-07-23 michael.rhyner@stepping-stone.ch corrected wrong syslog&lt;br /&gt;
    severities for errors&lt;br /&gt;
    2009-07-24 michael.rhyner@stepping-stone.ch made e-mail address&lt;br /&gt;
    available within message body&lt;br /&gt;
    2013-08-19 pat.klaey@stepping-stone.ch write quota values also to the&lt;br /&gt;
    LDAP&lt;br /&gt;
&lt;br /&gt;
INCORPORATED CODE&lt;br /&gt;
    Incorporate code with use:&lt;br /&gt;
&lt;br /&gt;
        warnings;&lt;br /&gt;
        strict;&lt;br /&gt;
        Config::IniFiles;&lt;br /&gt;
        Getopt::Std;&lt;br /&gt;
        Sys::Syslog;&lt;br /&gt;
        File::Basename;&lt;br /&gt;
        Text::Template;&lt;br /&gt;
        POSIX;&lt;br /&gt;
        Notification;&lt;br /&gt;
        PerlUtil::Logging;&lt;br /&gt;
        PerlUtil::LDAPUtil;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
 /etc/backup-utils/writeAccountSize.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Global]&lt;br /&gt;
INCOMING_DIRECTORY = /incoming&lt;br /&gt;
ACCOUNT_SIZE_FILE = /etc/backupSize&lt;br /&gt;
SNAPSHOTS = 1&lt;br /&gt;
&lt;br /&gt;
[Syslog]&lt;br /&gt;
SYSLOG = rsnapshot&lt;br /&gt;
&lt;br /&gt;
[Directory]&lt;br /&gt;
LDAP_SERVER = ldaps://ldapm.tombstone.ch&lt;br /&gt;
LDAP_PORT = 636&lt;br /&gt;
LDAP_BIND_DN = cn=Manager,dc=stoney-cloud,dc=org&lt;br /&gt;
LDAP_BIND_PW = &amp;lt;password&amp;gt;&lt;br /&gt;
LDAP_BASE_DN = ou=accounts,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
LDAP_PERSON_BASE = ou=people,dc=stoney-cloud,dc=org&lt;br /&gt;
LDAP_RESELLER_BASE = ou=reseller,ou=configuration,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
LDAP_EMAIL_ATTRIBUTE = mail&lt;br /&gt;
&lt;br /&gt;
[Notification]&lt;br /&gt;
EMAIL_SENDER = stepping stone GmbH Supprt &amp;lt;support@stepping-stone.ch&amp;gt;&lt;br /&gt;
EMAIL_ALERT_THRESHOLD = 85&lt;br /&gt;
&lt;br /&gt;
Salutation_Default_de-CH = Liebe Kundin / Lieber Kunde&lt;br /&gt;
Salutation_m_de-CH = Sehr geehrter Herr&lt;br /&gt;
Salutation_f_de-CH = Sehr geehrte Frau&lt;br /&gt;
Salutation_Default_en-GB = Dear customer&lt;br /&gt;
Salutation_m_en-GB = Dear Mr.&lt;br /&gt;
Salutation_f_en-GB = Dear Mrs.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tests ===&lt;br /&gt;
 /usr/libexec/backup-utils/writeAccountSize.pl -U 4000080 -d&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Debug modus was turned on&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersHomeDirectory: $localUsersHomeDirectory: /var/backup/080/4000080/home/4000080&lt;br /&gt;
Debug sub checkUsersHomeDirectory: The $localUsersHomeDirectory /var/backup/080/4000080/home/4000080 exists&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localUsersHomeDirectory:   /var/backup/080/4000080/home/4000080&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localUsersIncomingDirectory: /incoming&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localIncomingPath:           /var/backup/080/4000080/home/4000080/incoming&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: The $localIncomingPath /var/backup/080/4000080/home/4000080/incoming exists&lt;br /&gt;
Total Quota: 1048576 kilobytes&lt;br /&gt;
Total used Space: 0 kilobytes&lt;br /&gt;
Incoming Size: 0 kilobytes&lt;br /&gt;
Debug sub getSnapshotsSize: $localUsedQuota:   0&lt;br /&gt;
Debug sub getSnapshotsSize: $localSnapshotsSize:   0&lt;br /&gt;
Debug writeAccountSize: Working on /var/backup/080/4000080/etc/backupSize&lt;br /&gt;
Debug: wrote 1024 0 0 to /var/backup/080/4000080/etc/backupSize&lt;br /&gt;
DEBUG:  Successfully executed the following modifications for entry uid=4000080,ou=accounts,ou=backup,ou=services,o=stepping-stone,c=ch: sstBackupSize =&amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
DEBUG:  Successfully executed the following modifications for entry uid=4000080,ou=accounts,ou=backup,ou=services,o=stepping-stone,c=ch: sstIncrementSize =&amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
Alert Threshold: 85 %&lt;br /&gt;
Calculated value: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now write some data (200 megaytes in this example) into the users incoming directory and then execute the script again:&lt;br /&gt;
 dd if=/dev/zero of=/var/backup/080/4000080/home/4000080/incoming/test.zeros bs=1024k count=200&lt;br /&gt;
 chown 4000080:4000080 /var/backup/080/4000080/home/4000080/incoming/test.zeros&lt;br /&gt;
 /usr/libexec/backup-utils/writeAccountSize.pl -U 4000080 -d&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Debug modus was turned on&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersHomeDirectory: $localUsersHomeDirectory: /var/backup/080/4000080/home/4000080&lt;br /&gt;
Debug sub checkUsersHomeDirectory: The $localUsersHomeDirectory /var/backup/080/4000080/home/4000080 exists&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localUsersHomeDirectory:   /var/backup/080/4000080/home/4000080&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localUsersIncomingDirectory: /incoming&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localIncomingPath:           /var/backup/080/4000080/home/4000080/incoming&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: The $localIncomingPath /var/backup/080/4000080/home/4000080/incoming exists&lt;br /&gt;
Total Quota: 1048576 kilobytes&lt;br /&gt;
Total used Space: 204800 kilobytes&lt;br /&gt;
Incoming Size: 204800 kilobytes&lt;br /&gt;
Debug sub getSnapshotsSize: $localUsedQuota:   204800&lt;br /&gt;
Debug sub getSnapshotsSize: $localSnapshotsSize:   0&lt;br /&gt;
Debug writeAccountSize: Working on /var/backup/080/4000080/etc/backupSize&lt;br /&gt;
Debug: wrote 1024 200 0 to /var/backup/080/4000080/etc/backupSize&lt;br /&gt;
DEBUG:  Successfully executed the following modifications for entry uid=4000080,ou=accounts,ou=backup,ou=services,o=stepping-stone,c=ch: sstBackupSize =&amp;gt; 209715200&lt;br /&gt;
&lt;br /&gt;
DEBUG:  Successfully executed the following modifications for entry uid=4000080,ou=accounts,ou=backup,ou=services,o=stepping-stone,c=ch: sstIncrementSize =&amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
Alert Threshold: 85 %&lt;br /&gt;
Calculated value: 19.53125&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Everything seems to be working fine!&lt;br /&gt;
&lt;br /&gt;
== snapshot.pl ==&lt;br /&gt;
This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/snapshot.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package and does the following:&lt;br /&gt;
* Read interval parameter value passed&lt;br /&gt;
** The interval parameter value can be daily, weekly, monthly (or yearly)&lt;br /&gt;
* Find all backup active accounts for which the rsnapshot command must be executed (depending on the given interval)&lt;br /&gt;
** Filter to find these accounts: &amp;lt;code&amp;gt;(&amp;amp;(sstBackupInterval&amp;lt;INTERVAL&amp;gt;=*)(sstIsActive=TRUE))&amp;lt;/code&amp;gt; for example for the daily rsnapshot the filter is &amp;lt;code&amp;gt;(&amp;amp;(sstBackupIntervalDaily=*)(sstIsActive=TRUE))&amp;lt;/code&amp;gt;&lt;br /&gt;
*** In other words this means: Get me all acounts that have for &amp;lt;code&amp;gt;sstBackupInterval&amp;lt;INTERVAL&amp;gt;&amp;lt;/code&amp;gt; a value defined AND &amp;lt;code&amp;gt;sstIsActive&amp;lt;/code&amp;gt; is set to &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* According to the interval given and the account UID calculate the rsnapshot command for all these accounts&lt;br /&gt;
** For example&lt;br /&gt;
*** Account UID: 4000000 &lt;br /&gt;
*** Interval: daily&lt;br /&gt;
*** Resulting rsnapshot command: /usr/bin/nice -n 19 /usr/bin/rsnapshot  -c /etc/rsnapshot/rsnapshot.conf.4000000 daily (if you use the [[#snapshot.pl_Configuration | configuration]] below)&lt;br /&gt;
* Execute all these commands&lt;br /&gt;
** Use controlled parallel execution, you can specify how many commands can be executed in parallel (see [[#snapshot.pl_Configuration | configuration]] below)&lt;br /&gt;
* Pod documentation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    snapshot.pl&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This script gets all active online backup accounts from the LDAP backend&lt;br /&gt;
    for which the rsnapshot process for the given interval must be executed.&lt;br /&gt;
    According to these accounts and the given interval, the commands to be&lt;br /&gt;
    executed are generated and finally executed. The commands can be&lt;br /&gt;
    executed in parallel, however there is a limit defined in the&lt;br /&gt;
    configuration file which limits the amount of parallel running&lt;br /&gt;
    processes.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
    ./snapshot.pl --interval interval [--debug] [--help]&lt;br /&gt;
&lt;br /&gt;
OPTIONS&lt;br /&gt;
    --interval/-i interval&lt;br /&gt;
        Specifies the rsnapshot interval (can be hourly, daily, weekly,&lt;br /&gt;
        monthly or yearly)&lt;br /&gt;
&lt;br /&gt;
    --debug/-d&lt;br /&gt;
        Turns on debug mode&lt;br /&gt;
&lt;br /&gt;
    --help/-h&lt;br /&gt;
        Shows this help&lt;br /&gt;
&lt;br /&gt;
CREATED&lt;br /&gt;
    2012-03-19 pat.klaey@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
VERSION&lt;br /&gt;
    2012-03-19 pat.klaey@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
INCORPORATED CODE&lt;br /&gt;
    Incorporated code with use:&lt;br /&gt;
&lt;br /&gt;
        warnings;&lt;br /&gt;
        strict;&lt;br /&gt;
        Getopt::Long;&lt;br /&gt;
        Sys::Syslog;&lt;br /&gt;
        PerlUtil::Logging;&lt;br /&gt;
        PerlUtil::LDAPUtil;&lt;br /&gt;
        File::Basename;&lt;br /&gt;
        Parallel::ForkManager;&lt;br /&gt;
        Time::Stopwatch;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
There are two things to do in this step: &lt;br /&gt;
* Configure the rsnapshot root directory&lt;br /&gt;
* Configure the snapshot.pl script itself&lt;br /&gt;
&lt;br /&gt;
==== rsnaphot configuration directory ====&lt;br /&gt;
The users individual rsnapshot configurations are stored under &amp;lt;code&amp;gt;/etc/rsnapshot&amp;lt;/code&amp;gt;. Please make sure, that the directory exists:&lt;br /&gt;
 ls -al /etc | grep rsnapshot&lt;br /&gt;
&lt;br /&gt;
 drwx------  2 root   root      64 30. Aug 20:20 rsnapshot&lt;br /&gt;
&lt;br /&gt;
If not, create it:&lt;br /&gt;
 mkdir /etc/rsnapshot&lt;br /&gt;
 chmod 700 /etc/rsnapshot&lt;br /&gt;
&lt;br /&gt;
==== snapshot.pl Configuration ====&lt;br /&gt;
The snapshot.pl script is responsible for the execution of rsnapshot according to the users settings.&lt;br /&gt;
 /etc/backup-utils/snapshot.conf &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[General]&lt;br /&gt;
MaxParallelProcesses = 5&lt;br /&gt;
Rsnapshot_command = /usr/bin/nice -n 19 /usr/bin/rsnapshot  -c /etc/rsnapshot/rsnapshot.conf.%uid% %interval%&lt;br /&gt;
&lt;br /&gt;
[LDAP]&lt;br /&gt;
Host = ldaps://ldapm.tombstone.ch&lt;br /&gt;
Port = 636&lt;br /&gt;
User = cn=Manager,dc=stoney-cloud,dc=org&lt;br /&gt;
Password = &amp;lt;Password&amp;gt;&lt;br /&gt;
CA_Path = /etc/ssl/certs&lt;br /&gt;
Accounts_Base = ou=accounts,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legend: At runtime the following placeholders are replaced as follows&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;%uid%&amp;#039;&amp;#039;&amp;#039;: The backup account and login uid as a numeric number. For example: 4000205.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;%interval%&amp;#039;&amp;#039;&amp;#039;: The backup level to be executed. Possible values are hourly, daily, weekly, monthly and yearly.&lt;br /&gt;
&lt;br /&gt;
=== Tests ===&lt;br /&gt;
Before adding the necessary cronjob entries, we need to make sure, that we&amp;#039;ve configured the snapshot.pl script correctly:&lt;br /&gt;
 /usr/libexec/backup-utils/snapshot.pl --interval daily -d&lt;br /&gt;
&lt;br /&gt;
If everything worked as planned, you should receive feedback looking roughly like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INFO:  Starting rsnapshot for interval daily with maximum 5 parallel processes&lt;br /&gt;
&lt;br /&gt;
INFO:  Executing snapshot for 4000080&lt;br /&gt;
&lt;br /&gt;
INFO:  Executing snapshot for 4000079&lt;br /&gt;
&lt;br /&gt;
INFO:  Snapshot process for 4000079 finished in 0.18 seconds with status 0&lt;br /&gt;
&lt;br /&gt;
INFO:  Snapshot process for 4000080 finished in 0.19 seconds with status 0&lt;br /&gt;
&lt;br /&gt;
INFO:  rsnapshot for all backups done. Took 0.24 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to make sure, that everything did work out fine, execute &amp;lt;code&amp;gt;writeAccountSize.pl&amp;lt;/code&amp;gt; again:&lt;br /&gt;
 /usr/libexec/backup-utils/writeAccountSize.pl -U 4000080 -d&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Debug modus was turned on&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersHomeDirectory: $localUsersHomeDirectory: /var/backup/080/4000080/home/4000080&lt;br /&gt;
Debug sub checkUsersHomeDirectory: The $localUsersHomeDirectory /var/backup/080/4000080/home/4000080 exists&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localUsersHomeDirectory:   /var/backup/080/4000080/home/4000080&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localUsersIncomingDirectory: /incoming&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: $localIncomingPath:           /var/backup/080/4000080/home/4000080/incoming&lt;br /&gt;
&lt;br /&gt;
Debug sub checkUsersIncomingDirectory: The $localIncomingPath /var/backup/080/4000080/home/4000080/incoming exists&lt;br /&gt;
Total Quota: 1048576 kilobytes&lt;br /&gt;
Total used Space: 409600 kilobytes&lt;br /&gt;
Incoming Size: 204800 kilobytes&lt;br /&gt;
Debug sub getSnapshotsSize: $localUsedQuota:   409600&lt;br /&gt;
Debug sub getSnapshotsSize: $localSnapshotsSize:   204800&lt;br /&gt;
Debug writeAccountSize: Working on /var/backup/080/4000080/etc/backupSize&lt;br /&gt;
Debug: wrote 1024 200 200 to /var/backup/080/4000080/etc/backupSize&lt;br /&gt;
DEBUG:  Successfully executed the following modifications for entry uid=4000080,ou=accounts,ou=backup,ou=services,o=stepping-stone,c=ch: sstBackupSize =&amp;gt; 209715200&lt;br /&gt;
&lt;br /&gt;
DEBUG:  Successfully executed the following modifications for entry uid=4000080,ou=accounts,ou=backup,ou=services,o=stepping-stone,c=ch: sstIncrementSize =&amp;gt; 209715200&lt;br /&gt;
&lt;br /&gt;
Alert Threshold: 85 %&lt;br /&gt;
Calculated value: 39.0625&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the total used space has risen to 39.0625.&lt;br /&gt;
&lt;br /&gt;
=== Cronjobs ===&lt;br /&gt;
After making sure, that everything worked as planned, you can update your crontab entry:&lt;br /&gt;
 crontab -e&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
# Rsnapshot for all users&lt;br /&gt;
30 22 * * * /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;br /&gt;
15 22 * * sun /usr/libexec/backup-utils/snapshot.pl --interval weekly&lt;br /&gt;
00 22 1 * * /usr/libexec/backup-utils/snapshot.pl --interval monthly&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TBD: Maybe this is not optimal if there is a lot of data to rotate. In this case, it might be that for example weekly and daily snapshot both run at the same time what might lead to strange results. &lt;br /&gt;
* Workarounds: &lt;br /&gt;
** Simple/short version: Instead one could create another wrapper script which is called everyday and does some simple logic:&lt;br /&gt;
** Is today the first day of a month? &lt;br /&gt;
*** Yes: Is today sunday? &lt;br /&gt;
**** Yes: Execute monthly then weekly then daily rsnapshots using the snapshot.pl script (but wait for each interval to finish before starting the next)&lt;br /&gt;
**** No: Execute monthly then daily rsnapshots using the snapshot.pl script (but wait for monthly interval to finish before starting the daily)&lt;br /&gt;
*** No: Is today sunday?&lt;br /&gt;
**** Yes: Execute weekly then daily rsnapshots using the snapshot.pl script (but wait for weekly interval to finish before starting the daily)&lt;br /&gt;
**** No: Execute daily rsnapshots using the snapshot.pl script&lt;br /&gt;
** Complex/long version: Adapt the snapshot.pl script and call it every day without interval parameter. The script does the logic described above.&lt;br /&gt;
This avoids the above mentioned collision&lt;br /&gt;
&lt;br /&gt;
(Complex) / short version: rule via cronjobs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Rsnapshot for all users&lt;br /&gt;
30 22 * * 1-6 [ $( date +\%d ) -gt 1 ] &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;br /&gt;
15 22 * * 7 [ $( date +\%d ) -gt 1 ] &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval weekly &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;br /&gt;
00 22 1 * * /usr/libexec/backup-utils/snapshot.pl --interval monthly &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval weekly &amp;amp;&amp;amp; /usr/libexec/backup-utils/snapshot.pl --interval daily&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== scheduleWarning.pl ==&lt;br /&gt;
This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/scheduleWarning.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package and does the following:&lt;br /&gt;
* The basic task of this script is simple: For the given account&lt;br /&gt;
** Check if the planned backups were started&lt;br /&gt;
*** If not, start the [[stoney_cloud:_Notification_Architecture | notification]] process with&lt;br /&gt;
**** Product: Given account UID&lt;br /&gt;
**** Service: Backup&lt;br /&gt;
**** Problem: Schedule &lt;br /&gt;
** Check if the planned backups finished successfully&lt;br /&gt;
*** If not, start the [[stoney_cloud:_Notification_Architecture | notification]] process with&lt;br /&gt;
**** Product: Given account UID&lt;br /&gt;
**** Service: Backup&lt;br /&gt;
**** Problem: Unsuccessful&lt;br /&gt;
&lt;br /&gt;
As the backup clients distributed by stepping stone GmbH upload metadata XML before (scheduling information and start time) and after (end time and backup status) the actual backup, the scheduleWarning.pl script is able to verify whether or not a planned backup has been executed and whether or not the backup was successful. &lt;br /&gt;
&lt;br /&gt;
* Pod documentation&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    scheduleWarning.pl&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This script tests whether a planed backup was successful or not. There&lt;br /&gt;
    are two different typs of failure.&lt;br /&gt;
&lt;br /&gt;
    1. The Backup did not start&lt;br /&gt;
        The first type of error is that a backup is scheduled for YYYY-MM-DD&lt;br /&gt;
        at HH:MM, but the backup don&amp;#039;t start at this specified time. A&lt;br /&gt;
        possible reason could be that the computer was shut down.&lt;br /&gt;
&lt;br /&gt;
    2.The backup was not successful&lt;br /&gt;
        The second type of error is that a backup started as scheduled but&lt;br /&gt;
        did not finish successfully. There are different reasons for this&lt;br /&gt;
        error.&lt;br /&gt;
&lt;br /&gt;
    If a backup wasn&amp;#039;t successful the script checks which type of error&lt;br /&gt;
    occured. It reads the XML files which are stored on the server and&lt;br /&gt;
    compares the given information. If the error is detected, the script&lt;br /&gt;
    stats the norification process with the information of the error.&lt;br /&gt;
&lt;br /&gt;
    If a user has more than one computer backed-up, the script tests one&lt;br /&gt;
    computer after the other. The mail(s) sent by the programm also&lt;br /&gt;
    contain(s) the information which computer is affected.&lt;br /&gt;
&lt;br /&gt;
OPTION&lt;br /&gt;
    -U uid&lt;br /&gt;
        The -U option is required to run the script, it indicates for which&lt;br /&gt;
        uid the script is executed.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
    scheduleWarning.pl [-U user]&lt;br /&gt;
&lt;br /&gt;
CREATED&lt;br /&gt;
    2010-04-14 created Pat Kläy &amp;lt;pat.klaey@stepping-stone.ch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VERSION&lt;br /&gt;
    2010-04-14 v0.01, created pkl&lt;br /&gt;
    2010-08-24 v0.02, modified pkl&lt;br /&gt;
        New using Net::SMTP::TLS to send mails&lt;br /&gt;
&lt;br /&gt;
    2013-09-13 v0.03, modified pat.klaey@stepping-stone.ch&lt;br /&gt;
        Changes to use the script with the new backup infrastructure (read&lt;br /&gt;
        more information from LDAP, use Notification lib to send mails)&lt;br /&gt;
&lt;br /&gt;
USES&lt;br /&gt;
    strict;&lt;br /&gt;
    warnings;&lt;br /&gt;
    XML::Simple;&lt;br /&gt;
    Config::IniFiles;&lt;br /&gt;
    XML::Validator::Schema;&lt;br /&gt;
    Date::Calc qw(:all);&lt;br /&gt;
    Date::Manip;&lt;br /&gt;
    Schedule::Cron::Events;&lt;br /&gt;
    DateTime::Format::Strptime;&lt;br /&gt;
    Sys::Syslog;&lt;br /&gt;
    XML::SAX::ParserFactory;&lt;br /&gt;
    Getopt::Std;&lt;br /&gt;
    MIME::Base64;&lt;br /&gt;
    Authen::SASL;&lt;br /&gt;
    Net::LDAPS;&lt;br /&gt;
    Net::SMTP::TLS;&lt;br /&gt;
    Cwd &amp;#039;abs_path&amp;#039;;&lt;br /&gt;
    PerlUtil::Logging;&lt;br /&gt;
    PerlUtil::LDAPUtil;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
 /etc/backup-utils/scheduleWarning.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Backup]&lt;br /&gt;
CHROOT_DIRECTORY = /var/backup/%lastthree%/%user%&lt;br /&gt;
&lt;br /&gt;
[XML]&lt;br /&gt;
SCHEDULE_FILE = %homeDirectory%/incoming/%computerName%/.sepiola_backup/scheduler.xml&lt;br /&gt;
SCHEDULE_XSD = /etc/backup-utils/schema/scheduler_schema.xsd&lt;br /&gt;
BACKUP_ENDED_FILE = %homeDirectory%/incoming/%computerName%/.sepiola_backup/backupEnded.xml&lt;br /&gt;
BACKUP_ENDED_XSD = /etc/backup-utils/schema/backupended_schema.xsd&lt;br /&gt;
BACKUP_STARTED_FILE = %homeDirectory%/incoming/%computerName%/.sepiola_backup/backupStarted.xml&lt;br /&gt;
BACKUP_STARTED_XSD = /etc/backup-utils/schema/backupstarted_schema.xsd&lt;br /&gt;
&lt;br /&gt;
[TEMPLATE]&lt;br /&gt;
Salutation_Default_de-CH = Liebe Kundin / Lieber Kunde&lt;br /&gt;
Salutation_m_de-CH = Sehr geehrter Herr&lt;br /&gt;
Salutation_f_de-CH = Sehr geehrte Frau&lt;br /&gt;
Salutation_Default_en-GB = Dear customer&lt;br /&gt;
Salutation_m_en-GB = Dear Mr.&lt;br /&gt;
Salutation_f_en-GB = Dear Mrs.&lt;br /&gt;
&lt;br /&gt;
[LDAP]&lt;br /&gt;
&lt;br /&gt;
SERVER = ldaps://ldapm.tombstone.ch&lt;br /&gt;
PORT = 636&lt;br /&gt;
DEBUG = 1&lt;br /&gt;
&lt;br /&gt;
ADMIN_DN = cn=Manager,dc=stoney-cloud,dc=org &lt;br /&gt;
ADMIN_PASSWORD = &amp;lt;Password&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BACKUP_BASE = ou=accounts,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
PEOPLE_BASE = ou=people,dc=stoney-cloud,dc=org&lt;br /&gt;
RESELLER_BASE = ou=reseller,ou=configuration,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
SCOPE = sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== checkBackups.pl ==&lt;br /&gt;
This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/writeDate.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package. It is a wrapper around the above mentioned &amp;lt;code&amp;gt;writeAccountSize.pl&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;scheduleWarning.pl&amp;lt;/code&amp;gt; scripts (if you configure it accordingly).&lt;br /&gt;
* As mentioned the script is a wrapper for calling the quota and scheduler information scripts:&lt;br /&gt;
** It gets all active backup accounts from the LDAP directory&lt;br /&gt;
** According to the CLI parameters passed it calles for all these accounts:&lt;br /&gt;
*** The quota checking script (this script can be defined in the configuration file, see [[stoney_backup:_Server_set-up#Configuration_6 | configuration]] section below)&lt;br /&gt;
*** The scheduler checking script (this script can be defined in the configuration file, see [[stoney_backup:_Server_set-up#Configuration_6 | configuration]] section below)&lt;br /&gt;
* Pod documentation: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    checkBackups.pl&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This script processes all active backup accounts and checks (according&lt;br /&gt;
    to the command line options) the quota and/or the scheduled backups for&lt;br /&gt;
    the given accounts.&lt;br /&gt;
&lt;br /&gt;
    The script uses syslog for logging purposes.&lt;br /&gt;
&lt;br /&gt;
    Command Line Interface (CLI) parameters:&lt;br /&gt;
&lt;br /&gt;
OPTIONS&lt;br /&gt;
    --schedule/-s&lt;br /&gt;
        Checks schedule information by calling the defined script&lt;br /&gt;
&lt;br /&gt;
    --quota/-s&lt;br /&gt;
        Checks the quota values by calling the defined script&lt;br /&gt;
&lt;br /&gt;
    --notify/-n&lt;br /&gt;
        Passes the notify flag to the called scripts&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
    ./checkBackups.pl [--quota] [--schedule] [--notify]&lt;br /&gt;
&lt;br /&gt;
    ./checkBackups.pl --quota&lt;br /&gt;
        Checks and writes the quota for all active backup accounts. The user&lt;br /&gt;
        and/or reseller will NOT be informed if any quota threshold is&lt;br /&gt;
        reached&lt;br /&gt;
&lt;br /&gt;
    ./checkBackups.pl --quota --notify&lt;br /&gt;
        Checks and writes the quota for all active backup accounts. The user&lt;br /&gt;
        and/or reseller will be informed if any quota threshold is reached.&lt;br /&gt;
&lt;br /&gt;
    ./checkBackups.pl --schedule&lt;br /&gt;
        Checkes all active backup account if the scheduled backup was&lt;br /&gt;
        executed and successful. The --schedule option will allways trigger&lt;br /&gt;
        a notification mail to the user and/or reseller.&lt;br /&gt;
&lt;br /&gt;
    ./checkBackups.pl --schedule --quota&lt;br /&gt;
        Checks both, quota and schedule, for all active backup accounts.&lt;br /&gt;
        Only schedule will trigger notification mails.&lt;br /&gt;
&lt;br /&gt;
    ./checkBackups.pl --schedule --quota --notify&lt;br /&gt;
        Checks both, quota and schedule, for all active backup accounts.&lt;br /&gt;
        Both, quota and schedule, will trigger notification mails.&lt;br /&gt;
&lt;br /&gt;
CREATED&lt;br /&gt;
    2013-09-17 pat.klaey@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
VERSION&lt;br /&gt;
    2013-09-17 pat.klaey@stepping-stone.ch created&lt;br /&gt;
    2013-11-19 pat.klaey@stepping-stone.ch Added options to be able to check&lt;br /&gt;
    quota, schedule or both in one run&lt;br /&gt;
&lt;br /&gt;
INCORPORATED CODE&lt;br /&gt;
    Incorporated code with use:&lt;br /&gt;
&lt;br /&gt;
        warnings;&lt;br /&gt;
        strict;&lt;br /&gt;
        Getopt::Long;&lt;br /&gt;
        Sys::Syslog;&lt;br /&gt;
        Cwd &amp;#039;abs_path&amp;#039;;&lt;br /&gt;
        File::Basename;&lt;br /&gt;
        PerlUtil::LDAPUtil;&lt;br /&gt;
        PerlUtil::Logging;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
In the configuration you have to define two simple things: &lt;br /&gt;
# Which script to call for quota checks and scheduler checks&lt;br /&gt;
# How to access the LDAP backend&lt;br /&gt;
 /etc/backup-utils/checkBackups.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Scripts]&lt;br /&gt;
CheckQuotaScript = /usr/libexec/backup-utils/writeAccountSize.pl&lt;br /&gt;
CheckScheduleScript = /usr/libexec/backup-utils/scheduleWarning.pl&lt;br /&gt;
&lt;br /&gt;
[LDAP]&lt;br /&gt;
Server = ldaps://ldapm.tombstone.ch&lt;br /&gt;
Port = 636&lt;br /&gt;
Username = cn=Manager,dc=stoney-cloud,dc=org&lt;br /&gt;
Password = &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
AccountBase = ou=accounts,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Cronjobs ====&lt;br /&gt;
As you can pass the notification flag to the scripts, you can call the quota script say all 10 minutes. This makes sense if followed the configuration section, as the writeAccountSize.pl script writes the quota values to the LDAP backend which will then be visible in the selfcare webinterface. Like that you have a more or less up to date quota representation in the selfcare webinterface. On the other side, you don&amp;#039;t want to send notification mails to the user every 10 minutes. It might be enough to send them once a day, so the cronjobs may look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Check backups&lt;br /&gt;
15 12 * * * /usr/libexec/backup-utils/checkBackups.pl --schedule --quota --notify&lt;br /&gt;
&lt;br /&gt;
# Write quota values every 10 minutes&lt;br /&gt;
*/10 * * * * /usr/libexec/backup-utils/checkBackups.pl --quota&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ResellerBackupBilling.pl ==&lt;br /&gt;
This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/writeDate.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package. The pod documentation says all what needs to be said about this script.&lt;br /&gt;
* Pod documentation&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    ResellerBackupBilling.pl&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This script processes the reseller with the passed UID and creates a&lt;br /&gt;
    very simplistic backup-billing overview which then is sent to the&lt;br /&gt;
    address specified in the configuration file. The billing overview&lt;br /&gt;
    contains all backup accounts which belong to the given reseller as well&lt;br /&gt;
    as their quota. According to the billing plan specified in the&lt;br /&gt;
    configuration file, the script also calculates the price for each backup&lt;br /&gt;
    account.&lt;br /&gt;
&lt;br /&gt;
    The script uses syslog for logging purposes.&lt;br /&gt;
&lt;br /&gt;
    Command Line Interface (CLI) parameters:&lt;br /&gt;
&lt;br /&gt;
OPTIONS&lt;br /&gt;
    --reseller/-r UID&lt;br /&gt;
        Process the reseller with this UID&lt;br /&gt;
&lt;br /&gt;
    --debug/-d&lt;br /&gt;
        Turn on debug mode&lt;br /&gt;
&lt;br /&gt;
    --help/-h&lt;br /&gt;
        Display this help&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
    ./ResellerBackupBilling.pl --reseller UID [--debug] [--help]&lt;br /&gt;
&lt;br /&gt;
    ./ResellerBackupBilling.pl --reseller 2000000&lt;br /&gt;
        This processes the reseller with the UID 200000 and sends the&lt;br /&gt;
        billing overview to the address specified in the configuration file&lt;br /&gt;
&lt;br /&gt;
CREATED&lt;br /&gt;
    2014-01-24 pat.klaey@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
VERSION&lt;br /&gt;
    2014-01-24 pat.klaey@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
INCORPORATED CODE&lt;br /&gt;
    Incorporated code with use:&lt;br /&gt;
&lt;br /&gt;
        warnings;&lt;br /&gt;
        strict;&lt;br /&gt;
        Getopt::Long;&lt;br /&gt;
        PerlUtil::LDAPUtil;&lt;br /&gt;
        PerlUtil::Logging;&lt;br /&gt;
        PerlUtil::Mail;&lt;br /&gt;
        Number::Format;&lt;br /&gt;
        File::Basename;&lt;br /&gt;
        Cwd &amp;#039;abs_path&amp;#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
You have to configure basically three things:&lt;br /&gt;
# How to access the LDAP directory (similar to the other backup-util scripts)&lt;br /&gt;
# Define a pricing schema&lt;br /&gt;
#* Define a base price for an account&lt;br /&gt;
#* Define a GB price&lt;br /&gt;
#* The total price for each account will finall be: &amp;lt;code&amp;gt;base price + ( quota in GB * GB price )&amp;lt;/code&amp;gt;&lt;br /&gt;
# How to send the mail&lt;br /&gt;
#* You need to enter a valid (outgoing) mail server and corresponding port &lt;br /&gt;
#* User and password to authenticate on the mail server&lt;br /&gt;
#* A valid recipient (typically the company’s backoffice address) and sender&lt;br /&gt;
&lt;br /&gt;
 /etc/backup-utils/ResellerBackupBilling.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LDAP]&lt;br /&gt;
Server = ldaps://ldapm.tombstone.ch&lt;br /&gt;
Port = 636&lt;br /&gt;
Username = cn=Manager,dc=stoney-cloud,dc=org&lt;br /&gt;
Password = &amp;lt;Password&amp;gt;&lt;br /&gt;
AccountBase = ou=accounts,ou=backup,ou=services,dc=stoney-cloud,dc=org&lt;br /&gt;
CustomerBase = ou=customers,dc=stoney-cloud,dc=org&lt;br /&gt;
ResellerBase = ou=reseller,dc=stoney-cloud,dc=org&lt;br /&gt;
&lt;br /&gt;
[Pricing]&lt;br /&gt;
AccountBasePrice = 5.00&lt;br /&gt;
AccountGBPrice = 0.50&lt;br /&gt;
&lt;br /&gt;
[Mail]&lt;br /&gt;
Server = &amp;lt;Mail-Server&amp;gt;&lt;br /&gt;
Port = 587&lt;br /&gt;
Username = &amp;lt;Sender-Email-Address&amp;gt;&lt;br /&gt;
Password = &amp;lt;Password&amp;gt;&lt;br /&gt;
To = &amp;lt;Backoffice&amp;gt;&lt;br /&gt;
From = Billing Script &amp;lt;E-Mail-Address&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== writeDate.pl ==&lt;br /&gt;
This script is installed to &amp;lt;code&amp;gt;/usr/libexec/backup-utils/writeDate.pl&amp;lt;/code&amp;gt; by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package. This is a very simple script, it simply writes the current date and time to a file on the backup server before the rsnapshots rotates the backup. This date is used by the Sepiola Online Backup Client to display the iterations and their dates.&lt;br /&gt;
* Pod documentation: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    writeDate.pl&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This script writes the current date and time into the file for each&lt;br /&gt;
    backup before the rsnapshots rotates the backup. This information is&lt;br /&gt;
    used by the Sepiola Online Backup Client.&lt;br /&gt;
&lt;br /&gt;
    The configuration file for this script is stored under&lt;br /&gt;
    /etc/backup-utils/writeDate.conf&lt;br /&gt;
&lt;br /&gt;
    The script uses syslog for logging purposes.&lt;br /&gt;
&lt;br /&gt;
    Command Line Interface (CLI) parameters:&lt;br /&gt;
&lt;br /&gt;
    -C configfile&lt;br /&gt;
        The configuration file.&lt;br /&gt;
&lt;br /&gt;
    -U uid&lt;br /&gt;
        The user id.&lt;br /&gt;
&lt;br /&gt;
    -d debug&lt;br /&gt;
        Turns the debug mode on.&lt;br /&gt;
&lt;br /&gt;
    -h help&lt;br /&gt;
        This online help.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
    writeDate.pl [-C configuration_file] [-U uid] [-d debug] [-h help]&lt;br /&gt;
&lt;br /&gt;
CREATED&lt;br /&gt;
    2007-09-16 michael.eichenberger@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
VERSION&lt;br /&gt;
    2013-09-01 michael.eichenberger@stepping-stone.ch updated to reflect&lt;br /&gt;
    changes in the new backup environment&lt;br /&gt;
&lt;br /&gt;
        2007-09-16 michael.eichenberger@stepping-stone.ch created&lt;br /&gt;
&lt;br /&gt;
INCORPORATED CODE&lt;br /&gt;
    Incorporate code with use:&lt;br /&gt;
&lt;br /&gt;
        warnings;&lt;br /&gt;
        strict;&lt;br /&gt;
        Config::IniFiles;&lt;br /&gt;
        Getopt::Std;&lt;br /&gt;
        Sys::Syslog;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
 /etc/backup-utils/writeDate.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Global]&lt;br /&gt;
BACKUP_DIRECTORY = /incoming&lt;br /&gt;
BACKUP_BACKUP_TIME_FILE = /.sepiola_backup/backupTime&lt;br /&gt;
&lt;br /&gt;
[Syslog]&lt;br /&gt;
SYSLOG = rsnapshot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rsnapshot wrapper bash scripts ==&lt;br /&gt;
There are two rsnapshot wrapper scripts (these are bash scripts), they are installed by the &amp;lt;code&amp;gt;sys-apps/sst-backup-utils&amp;lt;/code&amp;gt; package:&lt;br /&gt;
* &amp;lt;code&amp;gt;/usr/libexec/backup-utils/rsnapshotPreExecWrapper.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
** This script is executed before the rsnapshot process and simply calls the [[stoney_backup:_Server_set-up#writeDate.pl | writeDat.pl ]] script.&lt;br /&gt;
* &amp;lt;code&amp;gt;/usr/libexec/backup-utils/rsnapshotPostExecWrapper.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
** This script is executed after the rsnapshot process and simply calls the [[stoney_backup:_Server_set-up#writeAccountSize.pl | writeAccountSize.pl ]] script.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; These scripts do not need any configuration.&lt;/div&gt;</summary>
		<author><name>Pat</name></author>
	</entry>
</feed>