Исключаем файлы по маске из TAR архива:
[root@shell ~]$ find /patch/to/dir/ -iname "*.php" -exec tar -rf /patch/to/filename.tar {} \;
Исключаем файлы и директории из архива:
cd /patch/to/dir/
tar -czvf - --exclude=www/photo --exclude=www/uploads --exclude='*.zip' --exclude='*.jpg' ./www/ | split -b 1999m - ./backup-filename.tar.gz
1. Сначала мы переходим в родительскую директорию, в которой находится нужная для архивации директория.
2. Мы вводим исключения для директорий а затем для типов файлов, потом объеденяем всё это и архивируем в TAR GZ архив.
Если вы хотите автоматизировать создание резервных копий (бекапов), то можете создать следующий скрипт, который можно зарядить в CRON:
#!/bin/sh
backup_date="$(date +%d.%m.%Y)"
backup_filename="$(date +%d.%m.%Y)_backup_filename.sql"
cd /patch/to/dir/
tar -czvf - --exclude=www/photo --exclude=www/uploads --exclude='*.zip' --exclude='*.jpg' ./www/ | split -b 1999m - ./$backup_filename.tar.gz
Помещаем этот скрипт в домашнюю директорию:
mv backup.sh /home/user_dir_name
Затем прописываем в CRONTAB следующее:
[root@shell]# export EDITOR="nano"
[root@EUROEXPO]# crontab -e
* 5 1,15 * * bash /home/user_dir_name/backup.sh
Директива * 5 1,15 * * bash
приказывает системе создавать архив 2 раза в месяц (1 и 15 числа каждого месяца).
Либо помещаем скрипт в папку /etc/cron.monthly/
(он будет выполняться раз в месяц)