<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pedromussato.com/index.php?action=history&amp;feed=atom&amp;title=Linux_file_backup</id>
	<title>Linux file backup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pedromussato.com/index.php?action=history&amp;feed=atom&amp;title=Linux_file_backup"/>
	<link rel="alternate" type="text/html" href="https://wiki.pedromussato.com/index.php?title=Linux_file_backup&amp;action=history"/>
	<updated>2026-04-08T10:38:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.pedromussato.com/index.php?title=Linux_file_backup&amp;diff=11&amp;oldid=prev</id>
		<title>413vhcu1lq0463ob: Created page with &quot;== How to make daily file backups on Linux == Just configure the source the name and the output dir, schedule this script to run daily on crontab and it&#039;s done. Remember that retention policy is defined in days, so if you want more or less than what we have on the script, just change it to fit your priorities.   #!/bin/bash    SOURCE=  NAME=  OUTPUT_DIR=  WEEKLY_BACKUP_RETENTION=30 #DAYS  MONTHLY_BACKUP_RETENTION=365 #DAYS  YEARLY_BACKUP_RETENTION=3650 #DAYS    mkdir -p...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.pedromussato.com/index.php?title=Linux_file_backup&amp;diff=11&amp;oldid=prev"/>
		<updated>2024-10-06T22:27:14Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== How to make daily file backups on Linux == Just configure the source the name and the output dir, schedule this script to run daily on crontab and it&amp;#039;s done. Remember that retention policy is defined in days, so if you want more or less than what we have on the script, just change it to fit your priorities.   #!/bin/bash    SOURCE=  NAME=  OUTPUT_DIR=  WEEKLY_BACKUP_RETENTION=30 #DAYS  MONTHLY_BACKUP_RETENTION=365 #DAYS  YEARLY_BACKUP_RETENTION=3650 #DAYS    mkdir -p...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== How to make daily file backups on Linux ==&lt;br /&gt;
Just configure the source the name and the output dir, schedule this script to run daily on crontab and it&amp;#039;s done. Remember that retention policy is defined in days, so if you want more or less than what we have on the script, just change it to fit your priorities.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 SOURCE=&lt;br /&gt;
 NAME=&lt;br /&gt;
 OUTPUT_DIR=&lt;br /&gt;
 WEEKLY_BACKUP_RETENTION=30 #DAYS&lt;br /&gt;
 MONTHLY_BACKUP_RETENTION=365 #DAYS&lt;br /&gt;
 YEARLY_BACKUP_RETENTION=3650 #DAYS&lt;br /&gt;
 &lt;br /&gt;
 mkdir -p $OUTPUT_DIR/&lt;br /&gt;
 mkdir -p $OUTPUT_DIR/daily&lt;br /&gt;
 mkdir -p $OUTPUT_DIR/weekly&lt;br /&gt;
 mkdir -p $OUTPUT_DIR/monthly&lt;br /&gt;
 mkdir -p $OUTPUT_DIR/yearly&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;STARTING $NAME BACKUP $(date +&amp;#039;%Y-%m-%d-%H-%M-%S&amp;#039;)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 export WEEK_DAY=`/bin/date +%u`&lt;br /&gt;
 &lt;br /&gt;
 # delete the old file&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;DELETING $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz IF EXISTS FILE&amp;quot;&lt;br /&gt;
 rm -f $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 export DAY=`/bin/date +%d`&lt;br /&gt;
 export MONTH_DAY=`/bin/date +%d-%m`&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;GENERATING $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz FILE&amp;quot;&lt;br /&gt;
 tar czf $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz $SOURCE/*&lt;br /&gt;
 &lt;br /&gt;
 DATE=`/bin/date +%Y-%m-%d`&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 ##   WEEK BACKUP   ##&lt;br /&gt;
 #####################&lt;br /&gt;
 if [ &amp;quot;$WEEK_DAY&amp;quot; == &amp;quot;7&amp;quot; ]; then&lt;br /&gt;
 echo &amp;quot;DOING WEEK BACKUP OF $NAME&amp;quot;&lt;br /&gt;
 cp $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz $OUTPUT_DIR/weekly/$NAME-$DATE.tar.gz&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 ##  MONTH BACKUP   ##&lt;br /&gt;
 #####################&lt;br /&gt;
 if [ &amp;quot;$DAY&amp;quot; == &amp;quot;01&amp;quot; ]; then&lt;br /&gt;
 echo &amp;quot;DOING MONTH BACKUP OF $NAME&amp;quot;&lt;br /&gt;
 cp $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz $OUTPUT_DIR/monthly/$NAME-$DATE.tar.gz&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 ##  YEAR BACKUP    ##&lt;br /&gt;
 #####################&lt;br /&gt;
 if [ &amp;quot;$MONTH_DAY&amp;quot; == &amp;quot;01-01&amp;quot; ]; then&lt;br /&gt;
 echo &amp;quot;DOING YEAR BACKUP OF $NAME&amp;quot;&lt;br /&gt;
 cp $OUTPUT_DIR/daily/$NAME-$WEEK_DAY.tar.gz $OUTPUT_DIR/yearly/$NAME-$DATE.tar.gz&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 ## RETENTION POLICY##&lt;br /&gt;
 #####################&lt;br /&gt;
 &lt;br /&gt;
 find $OUTPUT_DIR/weekly -type f -mtime +$WEEKLY_BACKUP_RETENTION | xargs rm -f&lt;br /&gt;
 &lt;br /&gt;
 find $OUTPUT_DIR/monthly -type f -mtime +$MONTHLY_BACKUP_RETENTION | xargs rm -f&lt;br /&gt;
 &lt;br /&gt;
 find $OUTPUT_DIR/yearly -type f -mtime +$YEARLY_BACKUP_RETENTION | xargs rm -f&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;FINISHING $NAME BACKUP $(date +&amp;#039;%Y-%m-%d-%H-%M-%S&amp;#039;)&amp;quot;&lt;/div&gt;</summary>
		<author><name>413vhcu1lq0463ob</name></author>
	</entry>
</feed>