我正在尝试备份服务器上的一些文件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
我感激所得到的任何帮助。
编辑:我最终制作了自己的 shell 脚本,并使用两个单独的 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"
答案1
你可以将档案分开:
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
答案2
您需要执行两个单独的 tar 命令来实现这一点。