这在 StackExchange 上可能会更好,但我使用 Ubuntu 作为我的文件服务器。
因此,我尝试使用tar
并gzip
仅备份文件服务器上最近 6 个月的更改,但不起作用。它gzip
什么也没做,它将 tar 文件放在与脚本相同的目录中(这不是我想要的),并将文件的名称更改为 tar 字符串的一部分。
脚本如下:
#!/bin/bash
tod=$(date +%F_%H%M%S)
echo "start"
echo $tod
echo "testing tar, only the last 6 months"
tar -cvf--newer-mtime=08-11-2013 /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
echo "now zipping"
gzip /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz
echo $tod
echo "done"
exit
提前致谢
答案1
尝试:
#!/bin/bash
tod=$(date +%F_%H%M%S)
echo "Start"
echo $tod
echo "testing tar, only the last 6 months"
tar --newer-mtime=20130811 -cvzf /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
echo "Done"
exit
我已经清理了 tar 命令中的错误 - 您需要f
在文件名前面加上选项,并通过 gzip(选项z
)对其进行过滤。
答案2
首先,您尝试创建一个.tar
文件。除了语法错误之外,bodhi.zazen 已经指出您的tar
文件名应该紧跟在-f
选项之后。正如 Wilf 在他的回答中恰当地指出的那样。
tar --newer-mtime=08-11-2013 -cvf /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
接下来又出现了一个错误。你正要去,gzip
/homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz
但是这个文件不存在。
相反,你有一个文件/homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar
你应该使用,
gzip /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar
它将创建/homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz
。
笔记:
你可以直接做,
tar --newer-mtime=08-11-2013 -cvzf /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
-z
同时切换 zip tar。