Debian / Ubuntu Linux – /var/spool/cron/crontabs/
Install the package php5-cli as this may not be installed by default.
/root/.my.cnf
[client] user=username pass=****
mkdir /root/backup/mysql/
/root/cron/backup-mysql.sh
#!/bin/sh
datum=`/bin/date +%Y%m%d-%H%M`
mysqldump db1 > /root/backup/mysql/db1-${datum}.sql
mysqldump db2 > /root/backup/mysql/db2-${datum}.sql
find /root/backup/mysql/ -type f -mtime +10 -exec rm {} \;
Bash script to backup all your MySQL databases
#!/bin/bash
OUTPUT="/root/backup/mysql/"
rm "$OUTPUT/*gz" > /dev/null 2>&1
databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --force --opt --databases $db > $OUTPUT/`date +%Y%m%d`-$db.sql
gzip $OUTPUT/`date +%Y%m%d`-$db.sql
fi
done
find /root/backup/mysql/ -type f -mtime +0 -exec rm {} \;
chmod 755 /root/cron/backup-mysql.sh
crontab -e
0 3 * * * /root/cron/backup-mysql.sh 0 4 * * * /usr/bin/php /var/www/.../*.php
mkdir /root/backup/www/
/root/cron/backup-www.sh
#!/bin/bash
# Path to backup directories: 1 row = 1 directory
LIST_FILE="/root/cron/list_file"
# Store todays date
NOW=$(date +"%F")
# Store backup path
BACKUP="/root/backup/www"
# Backup file name hostname.time.tar.gz
BFILE="$NOW-$(date +'%T').tar.gz"
# Paths for binary files
TAR="/bin/tar"
# Backup websever dirs
$TAR --exclude={*.wav,.git} -zcvf ${BACKUP}/${BFILE} -T "${LIST_FILE}"
find /root/backup/www/ -type f -mtime +2 -exec rm {} \;
list_file
/var/www/dir (no slash) /var/www/dir (no slash)
chmod 755 /root/cron/backup-www.sh
crontab -e
0 4 * * * /root/cron/backup-www.sh
crontab -e
0 5 * * * /etc/init.d/mysql restart 0 6 * * * service apache2 restart