<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments for Websites Explained!</title>
	<link>http://www.websitesexplained.com</link>
	<description>Essential food for webmasters: tutorials, articles and lessons</description>
	<pubDate>Fri, 21 Nov 2008 04:41:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>Comment on Plesk Backups by Alexander Driantsov</title>
		<link>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5662</link>
		<dc:creator>Alexander Driantsov</dc:creator>
		<pubDate>Tue, 02 Sep 2008 12:09:30 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5662</guid>
		<description>I have hardcoded the script like this, for our hosting(it's working perfectly, sending very good with load average and time taken for each user's webroot backup):

---------------- CUT -----------------
#!/bin/sh
# Incremental hosting backup script using rdiff
# Author: Driantsov Alexander
####

BACKUP_ADMIN_EMAIL="my-email@my-host.com"
BACKUP_MAIL_SUBJECT="`hostname`: Backup Synchronization Result"
BACKUP_LOG="/var/log/backup-log"

BACKUP_DELAY="10" # Delay between clients backup(seconds)
BACKUP_PRIO="20" # Priority for the MySQL dump and rdiff-backup Min: 20 Max: -20
BACKUP_DIFF_DIR="/var/backup/hosting" # Diffs of dumps will be stored there
BACKUP_TTL="6M" # Time To Live

SYNC_PRIO="20"
SYNC_SRV="254.254.254.254" # Remote server for backup storage
SYNC_USER="backup-user" # User at remote storage
SYNC_SPEED="200" # Limit Synchronization Bandwidth to this number of KB/s
SYNC_DIR="/backup/hosting" #Directory on Remote server to synchronize backups in

EXCLUDE_ARRAY="**templates_c
**html_cache"
TMP_DIR="/tmp"

echo -en "$EXCLUDE_ARRAY\n"&#124;while read exlude_dir; do exclude_str=`echo -en "${exclude_str}--exclude ${exlude_dir} "`; echo $exclude_str &#62; $TMP_DIR/exclude_str.tmp ; done
EXCLUDE_STR=`cat $TMP_DIR/exclude_str.tmp`
rm $TMP_DIR/exclude_str.tmp

backup_start="$(date +%s)"
load_average=`uptime&#124;awk '{print $10" "$11" "$12}'`
echo "Load overage at start: $load_average" &#62; $BACKUP_LOG
echo "BackingUP WebRoots:" &#62;&#62; $BACKUP_LOG
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -Bse "select login,home from sys_users;" psa&#124; while read user path; do
before_backup="$(date +%s)"
BACKUP_RESULT=`nice -n $BACKUP_PRIO  rdiff-backup $EXCLUDE_STR $path/httpdocs $BACKUP_DIFF_DIR/$HOSTNAME/$user 2&#62;&#38;1`
after_backup="$(date +%s)"
elapsed_seconds="$(expr $after_backup - $before_backup)"
load_average=`uptime&#124;awk '{print $10}'&#124;sed -e 's/,//'`
if [ -n "$BACKUP_RESULT" ]; then
echo -en "$load_average - $elapsed_seconds secs -  $user - ERRS: $BACKUP_RESULT" &#62;&#62; $BACKUP_LOG;
else
echo "$load_average - $elapsed_seconds secs -  $user" &#62;&#62; $BACKUP_LOG;
fi
load_average=`uptime&#124;awk '{print $10" "$11" "$12}'`
sleep $BACKUP_DELAY;
done

backup_end="$(date +%s)"
backup_elapsed_seconds="$(expr $backup_end - $backup_start)"

echo "\nLoad overage after WebRoots backup: $load_average\n" &#62;&#62; $BACKUP_LOG
#echo "Time taken for backup: $elapsed_seconds seconds" &#62;&#62; $BACKUP_LOG


#Synchronization
sync_start="$(date +%s)"
data_result=`nice -n $BACKUP_PRIO rsync -avz --bwlimit $SYNC_SPEED $BACKUP_DIFF_DIR/$HOSTNAME $SYNC_USER@$SYNC_SRV:$SYNC_DIR/$HOSTNAME&#124;tail -n 2 2&#62;&#38;1`
sync_end="$(date +%s)"
sync_elapsed_seconds="$(expr $sync_end - $sync_start)"
free_space_info=`nice -n $BACKUP_PRIO ssh $SYNC_USER@$SYNC_SRV df -h --sync -t ext3 2&#62;&#38;1`

echo -en "Time taken for backup: $backup_elapsed_seconds seconds\nTime taken for synchronization: $sync_elapsed_seconds seconds\nWebRoot backup synchronization:\n $data_result \n\nInformation on free space on remote backup server: \n $free_space_info \n\n Backup Log: \n\n`cat $BACKUP_LOG`"&#124; mail -s "$BACKUP_MAIL_SUBJECT" $BACKUP_ADMIN_EMAIL
---------------- CUT -----------------

Additionally we have such script for MySQL backups, these scripts works perfectly with load average &#60;= 1. Good luck in codind and fighting with overheads caused by backups, I spent a days to findout the best way of MySQL backup, trying mysqldump, mysqlhotcopy and other methods :)</description>
		<content:encoded><![CDATA[<p>I have hardcoded the script like this, for our hosting(it&#8217;s working perfectly, sending very good with load average and time taken for each user&#8217;s webroot backup):</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;- CUT &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
#!/bin/sh<br />
# Incremental hosting backup script using rdiff<br />
# Author: Driantsov Alexander<br />
####</p>
<p>BACKUP_ADMIN_EMAIL=&#8221;my-email@my-host.com&#8221;<br />
BACKUP_MAIL_SUBJECT=&#8221;`hostname`: Backup Synchronization Result&#8221;<br />
BACKUP_LOG=&#8221;/var/log/backup-log&#8221;</p>
<p>BACKUP_DELAY=&#8221;10&#8243; # Delay between clients backup(seconds)<br />
BACKUP_PRIO=&#8221;20&#8243; # Priority for the MySQL dump and rdiff-backup Min: 20 Max: -20<br />
BACKUP_DIFF_DIR=&#8221;/var/backup/hosting&#8221; # Diffs of dumps will be stored there<br />
BACKUP_TTL=&#8221;6M&#8221; # Time To Live</p>
<p>SYNC_PRIO=&#8221;20&#8243;<br />
SYNC_SRV=&#8221;254.254.254.254&#8243; # Remote server for backup storage<br />
SYNC_USER=&#8221;backup-user&#8221; # User at remote storage<br />
SYNC_SPEED=&#8221;200&#8243; # Limit Synchronization Bandwidth to this number of KB/s<br />
SYNC_DIR=&#8221;/backup/hosting&#8221; #Directory on Remote server to synchronize backups in</p>
<p>EXCLUDE_ARRAY=&#8221;**templates_c<br />
**html_cache&#8221;<br />
TMP_DIR=&#8221;/tmp&#8221;</p>
<p>echo -en &#8220;$EXCLUDE_ARRAY\n&#8221;|while read exlude_dir; do exclude_str=`echo -en &#8220;${exclude_str}&#8211;exclude ${exlude_dir} &#8220;`; echo $exclude_str &gt; $TMP_DIR/exclude_str.tmp ; done<br />
EXCLUDE_STR=`cat $TMP_DIR/exclude_str.tmp`<br />
rm $TMP_DIR/exclude_str.tmp</p>
<p>backup_start=&#8221;$(date +%s)&#8221;<br />
load_average=`uptime|awk &#8216;{print $10&#8243; &#8220;$11&#8243; &#8220;$12}&#8217;`<br />
echo &#8220;Load overage at start: $load_average&#8221; &gt; $BACKUP_LOG<br />
echo &#8220;BackingUP WebRoots:&#8221; &gt;&gt; $BACKUP_LOG<br />
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -Bse &#8220;select login,home from sys_users;&#8221; psa| while read user path; do<br />
before_backup=&#8221;$(date +%s)&#8221;<br />
BACKUP_RESULT=`nice -n $BACKUP_PRIO  rdiff-backup $EXCLUDE_STR $path/httpdocs $BACKUP_DIFF_DIR/$HOSTNAME/$user 2&gt;&amp;1`<br />
after_backup=&#8221;$(date +%s)&#8221;<br />
elapsed_seconds=&#8221;$(expr $after_backup - $before_backup)&#8221;<br />
load_average=`uptime|awk &#8216;{print $10}&#8217;|sed -e &#8217;s/,//&#8217;`<br />
if [ -n &#8220;$BACKUP_RESULT&#8221; ]; then<br />
echo -en &#8220;$load_average - $elapsed_seconds secs -  $user - ERRS: $BACKUP_RESULT&#8221; &gt;&gt; $BACKUP_LOG;<br />
else<br />
echo &#8220;$load_average - $elapsed_seconds secs -  $user&#8221; &gt;&gt; $BACKUP_LOG;<br />
fi<br />
load_average=`uptime|awk &#8216;{print $10&#8243; &#8220;$11&#8243; &#8220;$12}&#8217;`<br />
sleep $BACKUP_DELAY;<br />
done</p>
<p>backup_end=&#8221;$(date +%s)&#8221;<br />
backup_elapsed_seconds=&#8221;$(expr $backup_end - $backup_start)&#8221;</p>
<p>echo &#8220;\nLoad overage after WebRoots backup: $load_average\n&#8221; &gt;&gt; $BACKUP_LOG<br />
#echo &#8220;Time taken for backup: $elapsed_seconds seconds&#8221; &gt;&gt; $BACKUP_LOG</p>
<p>#Synchronization<br />
sync_start=&#8221;$(date +%s)&#8221;<br />
data_result=`nice -n $BACKUP_PRIO rsync -avz &#8211;bwlimit $SYNC_SPEED $BACKUP_DIFF_DIR/$HOSTNAME $SYNC_USER@$SYNC_SRV:$SYNC_DIR/$HOSTNAME|tail -n 2 2&gt;&amp;1`<br />
sync_end=&#8221;$(date +%s)&#8221;<br />
sync_elapsed_seconds=&#8221;$(expr $sync_end - $sync_start)&#8221;<br />
free_space_info=`nice -n $BACKUP_PRIO ssh $SYNC_USER@$SYNC_SRV df -h &#8211;sync -t ext3 2&gt;&amp;1`</p>
<p>echo -en &#8220;Time taken for backup: $backup_elapsed_seconds seconds\nTime taken for synchronization: $sync_elapsed_seconds seconds\nWebRoot backup synchronization:\n $data_result \n\nInformation on free space on remote backup server: \n $free_space_info \n\n Backup Log: \n\n`cat $BACKUP_LOG`&#8221;| mail -s &#8220;$BACKUP_MAIL_SUBJECT&#8221; $BACKUP_ADMIN_EMAIL<br />
&#8212;&#8212;&#8212;&#8212;&#8212;- CUT &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Additionally we have such script for MySQL backups, these scripts works perfectly with load average &lt;= 1. Good luck in codind and fighting with overheads caused by backups, I spent a days to findout the best way of MySQL backup, trying mysqldump, mysqlhotcopy and other methods <img src='http://www.websitesexplained.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Plesk Backups by erik</title>
		<link>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5658</link>
		<dc:creator>erik</dc:creator>
		<pubDate>Thu, 07 Aug 2008 07:03:23 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5658</guid>
		<description>Hi Corey, actually I do the same as you these days. I make full database dumps and then run rdiff-backup over the entire server. It's great to be able to restore a database or a file from x days ago.</description>
		<content:encoded><![CDATA[<p>Hi Corey, actually I do the same as you these days. I make full database dumps and then run rdiff-backup over the entire server. It&#8217;s great to be able to restore a database or a file from x days ago.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Plesk Backups by Corey</title>
		<link>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5657</link>
		<dc:creator>Corey</dc:creator>
		<pubDate>Wed, 06 Aug 2008 20:10:24 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5657</guid>
		<description>Um, rather than backing up live MySQL files that are susceptible to corruption, I do mysqldump against every database on a given hosting server.  Something like so:

find /var/lib/mysql  -type d &#124; sed -e 's/\/var\/lib\/mysql\///' &#124; \
        grep -v "/var/lib/mysql" &#124; \
        xargs -i \
                mysqldump -u admin --password=`cat /etc/psa/.psa.shadow` -r /var/dump/mysql/{}.sql {}

Basically I created /var/dump/mysql and each night, prior to my rdiff-backup job, I overwrite the SQL dump files.  rdiff-backup then keeps up to 7 versions of the file until they are pruned due to age.

Not only does that protect you from corrupt database files, it also saves you if site A needs to do a restore but site B is ok, etc.</description>
		<content:encoded><![CDATA[<p>Um, rather than backing up live MySQL files that are susceptible to corruption, I do mysqldump against every database on a given hosting server.  Something like so:</p>
<p>find /var/lib/mysql  -type d | sed -e &#8217;s/\/var\/lib\/mysql\///&#8217; | \<br />
        grep -v &#8220;/var/lib/mysql&#8221; | \<br />
        xargs -i \<br />
                mysqldump -u admin &#8211;password=`cat /etc/psa/.psa.shadow` -r /var/dump/mysql/{}.sql {}</p>
<p>Basically I created /var/dump/mysql and each night, prior to my rdiff-backup job, I overwrite the SQL dump files.  rdiff-backup then keeps up to 7 versions of the file until they are pruned due to age.</p>
<p>Not only does that protect you from corrupt database files, it also saves you if site A needs to do a restore but site B is ok, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Web Hosting Explained (part II) by Nevin</title>
		<link>http://www.websitesexplained.com/2006/10/web-hosting-explained-part-ii.html#comment-5653</link>
		<dc:creator>Nevin</dc:creator>
		<pubDate>Sat, 21 Jun 2008 00:44:42 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/10/web-hosting-explained-part-ii.html#comment-5653</guid>
		<description>DOnt for get the VPS/VDS server.VPS/VDS are a good start for any persons who need a full server without paying the full price. The only problem is most VPS/VDS are unmanaged and unwatched. Which means the only time the server is looked at if is another VPS has gone rampant and is hogging resources. Now I have a seen a few managed VPS/VDS companies like Server Intellect which managed the individual servers. So now you have a Techs logging into the VPS to do updates and keep the vps running, plus checking the main VPShost to keep it form running wild. If you do go with a VPS/VDS get one that is managed so you wont have these issues.</description>
		<content:encoded><![CDATA[<p>DOnt for get the VPS/VDS server.VPS/VDS are a good start for any persons who need a full server without paying the full price. The only problem is most VPS/VDS are unmanaged and unwatched. Which means the only time the server is looked at if is another VPS has gone rampant and is hogging resources. Now I have a seen a few managed VPS/VDS companies like Server Intellect which managed the individual servers. So now you have a Techs logging into the VPS to do updates and keep the vps running, plus checking the main VPShost to keep it form running wild. If you do go with a VPS/VDS get one that is managed so you wont have these issues.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Plesk Backups by Gilbert</title>
		<link>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5651</link>
		<dc:creator>Gilbert</dc:creator>
		<pubDate>Wed, 11 Jun 2008 17:00:04 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5651</guid>
		<description>Good howto, BUT! don't forget to omit the conf dir as different servers means different IP's... and chroot dir. can also be excluded. --exclude */conf/* --exclude chroot/*.

this applies when a plesk migration manager has been used prior to rsync.

HTH</description>
		<content:encoded><![CDATA[<p>Good howto, BUT! don&#8217;t forget to omit the conf dir as different servers means different IP&#8217;s&#8230; and chroot dir. can also be excluded. &#8211;exclude */conf/* &#8211;exclude chroot/*.</p>
<p>this applies when a plesk migration manager has been used prior to rsync.</p>
<p>HTH</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Plesk Backups by Nick</title>
		<link>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5622</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Sat, 02 Jun 2007 21:23:04 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/12/plesk-backup-tips.html#comment-5622</guid>
		<description>Many thanks - very useful to know for a linux/plesk newbie like myself.</description>
		<content:encoded><![CDATA[<p>Many thanks - very useful to know for a linux/plesk newbie like myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EveryDns.net denial of service (DoS) attacks by erik</title>
		<link>http://www.websitesexplained.com/2006/12/everydnsnet-denial-of-service-attacks.html#comment-85</link>
		<dc:creator>erik</dc:creator>
		<pubDate>Wed, 06 Dec 2006 10:11:16 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/12/everydnsnet-denial-of-service-attacks.html#comment-85</guid>
		<description>I've heard several reports from people that there have been small downtimes on monday and thursday. So hopefully this is another of those small downtimes. But this confirms my story to not use them, at least for a while, until problems have disappeared completely.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve heard several reports from people that there have been small downtimes on monday and thursday. So hopefully this is another of those small downtimes. But this confirms my story to not use them, at least for a while, until problems have disappeared completely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firefox 2.0 release by erik</title>
		<link>http://www.websitesexplained.com/2006/10/firefox-20-release.html#comment-17</link>
		<dc:creator>erik</dc:creator>
		<pubDate>Sun, 19 Nov 2006 21:17:26 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/10/firefox-20-release.html#comment-17</guid>
		<description>Aren't there extensions for that?</description>
		<content:encoded><![CDATA[<p>Aren&#8217;t there extensions for that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Firefox 2.0 release by Guillermo</title>
		<link>http://www.websitesexplained.com/2006/10/firefox-20-release.html#comment-11</link>
		<dc:creator>Guillermo</dc:creator>
		<pubDate>Fri, 17 Nov 2006 20:46:43 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/10/firefox-20-release.html#comment-11</guid>
		<description>Please add firefox cookies/bad web sites immunization in next version!
Firefox 2 cannot reject third party cookies!!!!!!!!</description>
		<content:encoded><![CDATA[<p>Please add firefox cookies/bad web sites immunization in next version!<br />
Firefox 2 cannot reject third party cookies!!!!!!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Web Hosting Explained (part I) by Websites Explained &#187; Blog Archive &#187; Web Hosting Explained (part II)</title>
		<link>http://www.websitesexplained.com/2006/10/web-hosting-explained-part-i.html#comment-2</link>
		<dc:creator>Websites Explained &#187; Blog Archive &#187; Web Hosting Explained (part II)</dc:creator>
		<pubDate>Sun, 29 Oct 2006 13:22:35 +0000</pubDate>
		<guid>http://www.websitesexplained.com/2006/10/web-hosting-explained-part-i.html#comment-2</guid>
		<description>[...] This is the second part of a series of articles I&#8217;m writing about Web Hosting. If you have not done so already, please read Web Hosting Explained part I. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] This is the second part of a series of articles I&#8217;m writing about Web Hosting. If you have not done so already, please read Web Hosting Explained part I. [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
