Я пытаюсь сделать резервные копии некоторых файлов на моем сервере, используя tar
но я не могу заставить его делать то, что хочу. Я искал решение в Google, но не могу найти подходящего. Я хочу файлы в /home/me/mysqlDumpFiles
должны быть включены, только если они новее, чем 1 час назад, но я хочу, чтобы все файлы в /var/www
быть включенными независимо от того, когда они были изменены.
dateNow=$(date +%m_%d_%y-%H.%M.%S)
tar czf /home/me/backups/backup-$dateNow.tar.gz /home/me/mysqlDumpFiles --newer-mtime "1 hour ago" /var/www
Я ценю любую помощь, которую я получаю.
РЕДАКТИРОВАТЬ: В итоге я создал свой собственный сценарий оболочки и запустил его с двумя отдельными командами tar
#!/bin/bash
set -e
currentDate=$(date +%Y-%m-%d_%H.%M.%S)
printf "currentDate is $currentDate\n========================================\n"
mkdir /home/me/backupTemp;
mysqldump -uroot -p[CENSORED] [DATABSE_NAME]> /home/me/backupTemp/site.net.sql;
tar -jcf /home/me/mysqlDumpFiles/site.net-$currentDate.tar.bz2 -C /home/me/backupTemp .;
tar -jcf /home/me/backups/backup-$currentDate.tar.bz2 -C /home/me/backupTemp . -C /var/www .;
rm -rf /home/me/backupTemp;
printf "========================================\n"
Для этого вам нужно будет выполнить две отдельные команды tar.
Вы могли разделить архивы:
dateNow=$(date +%m_%d_%y-%H.%M.%S)
tar czf ~/backups/mysql-$dateNow.tar.gz ~/mysqlDumpFiles/ --newer-mtime "1 hour ago"
tar czf ~/backups/www-$dateNow.tar.gz /var/www/
Или вы можете использовать -r
(--append
, добавлять файлы в конец архива) чтобы добавить папку в тот же архив:
dateNow=$(date +%m_%d_%y-%H.%M.%S)
tar cf ~/backups/backup-$dateNow.tar ~/mysqlDumpFiles/ --newer-mtime "1 hour ago"
tar rf ~/backups/backup-$dateNow.tar /var/www/
gzip ~/backups/backup-$dateNow.tar