sudo nano /usr/local/bin/backup
sudo chmod 755 /usr/local/bin/backup
ssh username@server.xyz -t '/usr/local/bin/backup'
scp username@server.xyz:backup*.7z /mnt/newton/yedek/websites
sshpass -p password ssh username@server.xyz -t '/usr/local/bin/backup'
sshpass -p password scp username@server.xyz:backup*.7z /mnt/newton/yedek/websites
sshpass -p password ssh username@server.xyz -t 'rm /home/username/backup*'
mail -A /home/username/backup*.7z -s backup_$(date +"%Y_%m_%d") myemail@gmail.com <<< 'Backup'
#!/bin/bash
USERNAME=abdullah
NEEDED_COMMANDS="smartctl"
PATH="$PATH:/usr/bin:/usr/sbin"
DISKS="/dev/sda"
# Checking if all needed programs are available on system
for COMMAND in $NEEDED_COMMANDS
do
if ! hash "$COMMAND" > /dev/null 2>&1
then
echo "$COMMAND not found on system" 1>&2
exit 1
fi
done
FLAG=1
mkdir /home/${USERNAME}/backup_$(date +"%Y_%m_%d") || FLAG=0
if [ -a /home/${USERNAME}/backup_$(date +"%Y_%m_%d") ]
then
echo
else
echo
exit 1
fi
echo
echo "------------------------------------------------------------------------------"
echo
cd /home/${USERNAME}/backup_$(date +"%Y_%m_%d") || FLAG=0
echo "Copying files ..."
echo
# Checking disks
for DISK in $DISKS
do
smartctl -Hi $DISK > ./diskinfo.txt
done
mkdir ./system || FLAG=0
cp /etc/fstab ./system || FLAG=0
cp /etc/hosts ./system || FLAG=0
cp /etc/hosts.allow ./system || FLAG=0
cp /etc/hosts.deny ./system || FLAG=0
cp /etc/default/grub ./system || FLAG=0
cp /home/${USERNAME}/.bashrc ./system/bashrc || FLAG=0
if [ -a /etc/exports ]
then
mkdir exports
cp /etc/exports ./exports || FLAG=0
else
echo "/etc/exports does not exist."
echo
fi
if [ -a /etc/fail2ban ]
then
mkdir fail2ban_filter.d
cp /etc/fail2ban/filter.d/recidive.conf ./fail2ban_filter.d || FLAG=0
cp /etc/fail2ban/filter.d/sshd.conf ./fail2ban_filter.d || FLAG=0
cp /etc/fail2ban/filter.d/nginx-noproxy.conf ./fail2ban_filter.d
cp /etc/fail2ban/filter.d/nginx-nohome.conf ./fail2ban_filter.d
cp /etc/fail2ban/filter.d/nginx-noscript.conf ./fail2ban_filter.d
cp /etc/fail2ban/filter.d/nginx-badbots.conf ./fail2ban_filter.d
cp /etc/fail2ban/filter.d/nginx-http-auth.conf ./fail2ban_filter.d || FLAG=0
cp /etc/fail2ban/jail.local ./fail2ban_jail.local || FLAG=0
else
echo "/etc/fail2ban does not exist."
echo
fi
if [ -a /etc/nginx ]
then
mkdir nginx || FLAG=0
cp /etc/nginx/nginx.conf ./nginx || FLAG=0
cp -r /etc/nginx/sites-available ./nginx/sites_available || FLAG=0
else
echo "/etc/nginx does not exist."
echo
fi
if [ -a /etc/postfix ]
then
mkdir postfix
cp /etc/postfix/main.cf ./postfix || FLAG=0
else
echo "/etc/postfix does not exist."
echo
fi
if [ -a /etc/php/7.0/fpm ]
then
mkdir php || FLAG=0
cp /etc/php/7.0/fpm/pool.d/www.conf ./php/php5_fpm_pool.d_www.conf || FLAG=0
cp /etc/php/7.0/fpm/php.ini ./php || FLAG=0
else
echo "/etc/php/7.0/fpm does not exist."
echo
fi
echo "------------------------------------------------------------------------------"
echo
echo "Compressing files ..."
sleep 2
7za a -ms=on -mhe=on -y /home/${USERNAME}/backup_$(date +"%Y_%m_%d").7z /home/${USERNAME}/backup_$(date +"%Y_%m_%d") || FLAG=0
echo
echo "------------------------------------------------------------------------------"
echo
echo "Removing temporary files ..."
sleep 1
rm -fr /home/${USERNAME}/backup_$(date +"%Y_%m_%d") || FLAG=0
chown -R ${USERNAME} /home/${USERNAME}/backup_$(date +"%Y_%m_%d").7z || FLAG=0
echo
if [[ $FLAG == 1 ]]
then
echo "Done. There were no problems."
echo
echo "------------------------------------------------------------------------------"
echo
exit 0
else
echo "Finished but there were some problems!"
echo
echo "------------------------------------------------------------------------------"
echo
exit 1
fi
sudo nano /usr/local/bin/backupmail
sudo chmod 755 /usr/local/bin/backupmail
sudo ln -sv /usr/local/bin/backupmail /etc/cron.weekly
#!/bin/bash
USERNAME=abdullah
EMAIL=myemail@gmail.com
/usr/local/bin/backup
sleep 4
mail -A /home/${USERNAME}/backup*.7z -s backup_$(date +"%Y_%m_%d") $EMAIL <<< 'Backup'
sleep 4
rm /home/${USERNAME}/backup*.7z
exit