实际上,我要做的是获取/servers/文件夹中的所有目录,并将它们移动到挂载在/media/backupdrive/的辅助硬盘驱动器中。这个脚本每天运行一次,所以它使用日期的名称创建目录,并且应该直接将文件夹复制到那里(我必须这样做的原因是因为我的客户在他的主硬盘驱动器上的磁盘空间有限,并且他的世界每个都在6-7 7gb以上)。无论如何,我可以让他们将文件夹复制到/media/backupdrive/currentdate,但是当我尝试压缩它时,它告诉我不能压缩空目录或类似的东西。
代码如下:
#!bin/bash
folderName=$(date +"%m-%d-%y")
mkdir "/media/backupdrive/$folderName"
for i in servers/*; do
cp -rf $i /media/backupdrive/$folderName/
cd /media/backupdrive/$folderName/
tar -C ${i:8} -czvf "${i:8}.tar.gz"
cd /root/multicraft/
done对不起,图片是在一个虚拟机上,我不得不重新输入,因为我不能复制和粘贴。
发布于 2013-03-20 05:19:14
在我看来,您的tar命令缺少输入(例如,最后一个"."),因此显示为"tar:胆小的拒绝创建空存档“。
您的脚本似乎适用于我的tar命令:
tar -C ${i#servers/} -czvf "${i#servers/}.tar.gz" .发布于 2013-03-20 06:33:54
我会尝试一种稍微不同的方法。tar本身并不使用临时文件,因此您可以将源代码直接tar到目标位置,然后在第二步中使用gzip压缩它们。
#!bin/bash
dst="/media/backupdrive/$(date +"%m-%d-%y")"
for d in servers/*; do
tarfile="$dst/${d#servers/}.tar"
tar -C "$d" -cvf "$tarfile" .
gzip -9 "$tarfile"
donehttps://stackoverflow.com/questions/15506835
复制相似问题