以下脚本对目录/ var / www / websites中的所有网站进行备份,并为/ var / backup中的每个网站创建.tar.gz,并且工作正常
WEBROOT="/var/www/websites"
BAKPATH="/var/backup"
for vhost in "$WEBROOT"/*; do
test -d "$vhost" || continue
base=$(basename "$vhost")
( cd "$WEBROOT" && tar -cpzf "$BAKPATH/$(date +%F)_$base.tar.gz" "$base" )
done
但是,我需要从备份中排除日志文件夹和一个网站,就像我们通常使用tar作为
一样排除-exclude = $ BAKPATH / * / logs或--exclude = $ BAKPATH / website2.com
我不确定该放在哪里?我尝试了以下操作,但不起作用
WEBROOT="/var/www/websites"
BAKPATH="/var/backup"
for vhost in "$WEBROOT"/*; do
test -d "$vhost" || continue
base=$(basename "$vhost")
( cd "$WEBROOT" && tar -cpzf "$BAKPATH/$(date +%F)_$base.tar.gz --exclude=$BAKPATH/*/logs --exclude=$BAKPATH/website2.com" "$base")
done
我应该放在哪里
-exclude = $ BAKPATH / * / logs --exclude = $ BAKPATH / website2.com
那么要生效吗?
答案 0 :(得分:0)
$BAKPATH
是应该在其中创建备份过程的 target (档案,*。tgz文件)的地方。如果要从 source 中排除某些内容,则必须在 source 中指定路径:
tar -cpz --exclude "$base/logs" \
-f "$BAKPATH/$(date +%F)_$base.tar.gz" "$base"
这将排除所有与全局模式$base/logs
相匹配的文件(以及下面的所有内容)。
根据您的问题,我假设您要排除e。 G。一个名为/var/www/websites/cardboardwebshop/logs/access.log
的文件。如果这是不正确的,请发表评论,也许我们可以弄清楚您到底要写什么才能排除您要排除的内容。
答案 1 :(得分:0)
从不同来源获得一些反馈后,我可以通过添加以下带有if条件的行来实现这一目标
mydf$date <- format(mydf$date, "%m/%d/%Y")
write.csv(mydf, file="path/to/file.csv")
所以,最终脚本看起来像这样
##ADD THIS
if [[ $vhost = *"website1.com"* || $vhost = *"website2.co.uk"* ]]; then
continue
fi
##