tar.zip 保存时出错

tar.zip 保存时出错

我制作了一个保存脚本,以将一些目录保存在我的/home.为此,我循环遍历 /home 中的目录,并为每个目录启动保存。

这些目录包含 jar 文件和一些.txt.属性和其他目录。我第一次启动该脚本时效果很好。我修改了它,但是昨天当我尝试某些功能时它出错了,我找不到原因。

tar -cjf当我使用命令创建 .tar.zip 存档时出现此错误。

tar: home/myFolder : 不可能 stat: 没有这种类型的文件或文件夹

backupdate=$(date +%Y-%m-%d) 
dirbackup=/save/$backupdate 
mkdir $dirbackup 
list_dossier=`ls ../home`

for server in $list_dossier 
do

    tar -cjf $dirbackup/$server.tar.zip home/$server

done

编辑 我试图保持这种保存的形状:一个名为日期的文件夹,在其中,X archves 包含我的 X 文件夹/home

#!/bin/bash
backupdate=$(date +%Y-%m-%d)
dirbackup=/save/$backupdate
mkdir $dirbackup

for server in /home/*
do
    echo $server"test"
    tar -cjf $dirbackup$server.tar.zip $server

done

exit

答案1

这一行会引起问题:

tar -cjf $dirbackup$server.tar.zip $server

那是因为$server会像这样/home/myserver,所以这个命令将扩展为

tar -cjf /save/2019-04-13/home/myserver.tar.zip /home/myserver

/home请注意tar 文件路径中的额外内容。

相反,我们可以提前更改目录。

#!/bin/bash
backupdate=$(date +%Y-%m-%d)
dirbackup=/save/$backupdate
mkdir $dirbackup || exit
cd /home || exit

for server in *
do
    echo $server"test"
    tar -cjf $dirbackup$server.tar.zip $server
done

答案2

backupdate=$(date +%Y-%m-%d) 
dirbackup=/save/$backupdate 
mkdir $dirbackup

find ../home -type d -not -name "." -a -not -name ".." -exec tar -cjf $dirbackup/'{}'.tar.bz2 '{}' \;

相关内容