The purpose of this article is to protect your important configuration and setting files that could change over time and you would want to retain a copy of these files for protection of your system.
I recommend you specify the list of important files and get them sent to you once a week via email using the script and guideline below.
First of all you have to configure a cron task that will run regularly once every week and although you can set up a user specific cron it is advised to set up a system based cron since the task you are carrying out is system wide.
user@server:/$ cat /etc/cron.weekly/aweeklycron
#!/bin/sh
echo "`date` - Daily cron - Taking config file backup and sending via email." >> /var/log/mycron.log
/etc/sysconfig/configbackup.sh & >> /var/log/mycron.log
#!/bin/sh
echo "`date` - Daily cron - Taking config file backup and sending via email." >> /var/log/mycron.log
/etc/sysconfig/configbackup.sh & >> /var/log/mycron.log
Now place the script in directory mentioned above in the cron task.
Create the direcory if it doesn't already exist.
sudo mkdir /etc/sysconfig
The script below uses Zip file format since it is a format that can be scripted to password protect your files.
$ sudo vi /etc/sysconfig/configbackup.sh
#!/bin/bash
hdir="/etc/sysconfig"
dt=`date "+%Y-%m-%d"`
tfile="/opt/backup/configbackup-$dt.zip"
ilist="$hdir/includelist.txt"
tmail="email@domain.com"
subj="Unique Email title - Backup - $dt"
sudo ufw status numbered > /tmp/ufwstatus.txt
sudo rm $tfile
sudo zip -r $tfile `cat $ilist` -P aSecretPassword
( echo "Configuration Backup taken on $dt attached." ; uuencode $tfile $tfile ) | mailx -s "Systenmane System config Backup" $tmail
#!/bin/bash
hdir="/etc/sysconfig"
dt=`date "+%Y-%m-%d"`
tfile="/opt/backup/configbackup-$dt.zip"
ilist="$hdir/includelist.txt"
tmail="email@domain.com"
subj="Unique Email title - Backup - $dt"
sudo ufw status numbered > /tmp/ufwstatus.txt
sudo rm $tfile
sudo zip -r $tfile `cat $ilist` -P aSecretPassword
( echo "Configuration Backup taken on $dt attached." ; uuencode $tfile $tfile ) | mailx -s "Systenmane System config Backup" $tmail
Make the script executable.
sudo chmod 755 /etc/sysconfig/configbackup.sh
Create an Include List that can contain system files and folders that are important, reconfigured or customized and you wish to take a regular backup of them.
$ sudo vi /etc/sysconfig/includelist.txt
/etc/asterisk/
/etc/asterisk/
/etc/cron.weekly/aweeklycron
/etc/resolv.conf
/etc/denyhosts.conf
/etc/init.d/vncserver
/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/hosts
/etc/fstab
/etc/ssh/ssh_config
/etc/ssh/sshd_config
/etc/samba/smb.conf
/etc/sysconfig
/etc/rsyslog.conf
/etc/ufw/ufw.conf
/etc/network/interfaces
/tmp/ufwstatus.txt
/etc/resolv.conf
/etc/denyhosts.conf
/etc/init.d/vncserver
/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/hosts
/etc/fstab
/etc/ssh/ssh_config
/etc/ssh/sshd_config
/etc/samba/smb.conf
/etc/sysconfig
/etc/rsyslog.conf
/etc/ufw/ufw.conf
/etc/network/interfaces
/tmp/ufwstatus.txt
This should complete your system config backup task and you should expect to see the weekly email containing a zip file with the contents that you have selected in your includelist.txt delivered by your sincere robotic task.
Subject to outgoing email configured and working.