Bash 脚本可以自行备份

Bash 脚本可以自行备份

我有以下 bash 脚本,用于在 Kubuntu PC 上创建我的文件系统的 tar.gz。问题是,它还尝试备份 tar.gz 备份文件,即使我将备份存储在 /tmp 中并从备份中省略了 /tmp。我想知道为什么它会在 /tmp 中备份文件,尽管我告诉它不要这样做。

#!/bin/bash
# init

DATE=$(date +20%y%m%d)

sudo tar -cvpzf /tmp/`hostname`_$DATE.tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/sys \
--exclude=/mnt \
--exclude=/media \
--exclude=/dev \
--exclude=/tmp \
--exclude=/home/jlacroix/Desktop \
--exclude=/home/jlacroix/Documents \
--exclude=/home/jlacroix/Music \
--exclude=/home/jlacroix/Pictures \
--exclude=/home/jlacroix/Projects \
--exclude=/home/jlacroix/Roms \
--exclude=/home/jlacroix/Videos \
--exclude=/home/jlacroix/.VirtualBox\ VMs \
--exclude=/home/jlacroix/.SpiderOak \
/

scp /tmp/`hostname`_$DATE.tar.gz jlacroix@Pluto:/share/Recovery/Snapshots

sudo rm /tmp/`hostname`_$DATE.tar.gz

答案1

您需要在排除的路径后面添加“*”,其工作原理是算法排除模式,而不是目录。

因此模式 /home/jlacroix/Music !=/home/jlacroix/Music/*

尝试一下,对我有用。

编辑:

不过,这仍然备份了目录名称。因此,您确实需要它看起来像这样:

--exclude=/home/[username]/Music/* --exclude=/home/[username]/Music \

这对于其余项目也同样适用。

相关内容