通过在Shell / Solaris中压缩/移动来存档日志文件

时间:2015-08-06 04:05:10

标签: bash shell unix solaris

我正在尝试移动和存档文件夹,但事情似乎没有发生。

CURRDATEforARCHIVE=`date +%Y-%m-%d`
PASTDATEforARCHIVE=`date -d "now - 7 days" "+%Y-%m-%d"`
mkdir $status_destpath/${PASTDATEforARCHIVE}TO${CURRDATEforARCHIVE}
echo "Directory Created"

cd $status_srcpath
for f in *
do 
mv $f $status_destpath/${PASTDATEforARCHIVE}TO${CURRDATEforARCHIVE}
done
echo "Moving all files done"

zip "${PASTDATEforARCHIVE}TO${CURRDATEforARCHIVE}.zip"     "$status_destpath/${PASTDATEforARCHIVE}TO${CURRDATEforARCHIVE}"
echo "Zipping Done."

echo "Verification in progress."
# Verify that zip has been created.
if [ -f "${PASTDATEforARCHIVE}TO${CURRDATEforARCHIVE}.zip" ]
then
    echo "Zip creation pass. Deletion in progress."
    rm -rf $status_destpath/${PASTDATEforARCHIVE}TO${CURRDATEforARCHIVE}
else
    printf "Zip creation failed '%s'\n"
fi

echo "Archival End."

过去日期似乎不起作用,文件也没有被存档,档案文件夹的位置在src,我如何存档并将其存放在目的地?

1 个答案:

答案 0 :(得分:0)

您需要GNU date才能使用定义PASTDATEforARCHIVE变量的GNU特定选项。

根据您使用的Solaris发行版,GNU日期可能位于/usr/gnu/bin/usr/sfw/bin/usr/local/bin/usr/csw/bin/usr/has/bin目录中...

如果缺少,则需要安装GNU date或使用其他方法设置变量。