linux環境shell腳本 壓縮 解壓 安裝 備份文件夾

使用方法:

1.  cd bin;  執行build.sh文件,會打包與bin目錄同層級的目錄py_common,生成打包文件py_common_install_V0.01.bsx

2. 執行bash py_common_install_V0.01.bsx 完成解壓、安裝和備份

 

具體腳本文件內容如下:  

打包壓縮文件:/bin/build.sh

#!/bin/bash

# 要打包的文件夾,py_common是需要打包的文件夾,與bin處於同一層級
app_name="py_common"

CUR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
WORK_DIR="$( cd ${CUR_DIR}/.. && pwd )"
version=0.01
BIN_DIR="$WORK_DIR/bin"


# 打包後的安裝文件
bsx_file="${CUR_DIR}/${app_name}_install_V${version}.bsx"
if [ -f $bsx_file ]; then
    rm -v ${bsx_file}
fi

TMPDIR=`mktemp -d /tmp/py_common-build.XXXXXX`
echo "tempdir : $TMPDIR"

cp -rp ${WORK_DIR}/${app_name} ${TMPDIR}/
cd $TMPDIR

tar --exclude='.git' --exclude='cscope*' --exclude="${app_name}.tar" \
    --exclude='*pyc' --exclude='log' \
    --exclude='release' \
    --exclude='*.bsx' --exclude='build.sh' -cf \
    $BIN_DIR/${app_name}.tar ./*
cd -

if [ -e ${BIN_DIR}/${app_name}.tar ]; then
    gzip ${BIN_DIR}/${app_name}.tar

    if [ -e ${BIN_DIR}/${app_name}.tar.gz ]; then
        cat $BIN_DIR/decompress.sh $BIN_DIR/${app_name}.tar.gz \
            > ${bsx_file}
    else
        echo "$BIN_DIR/${app_name}.tar.gz doesn't exist"
        exit 1
    fi
else
    echo "$BIN_DIR/${app_name}.tar doesn't exist"
    exit 1
fi


rm $BIN_DIR/${app_name}.tar.gz
rm -rf $TMPDIR
md5=$(md5sum ${bsx_file}|awk '{print $1}')
echo "the ${bsx_file} is created"
echo "md5sum is ${md5}"
exit 0

   解壓安裝備份文件:/bin/decompress.sh

#!/bin/bash

echo ""
echo "Self Extracting Installer"
echo ""

export TMPDIR=`mktemp -d /tmp/selfextract.XXXXXX`

ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0`

tail -n+$ARCHIVE $0 | tar xz -C $TMPDIR

CDIR=`pwd`
cd $TMPDIR

app_name="py_common"

# 安裝目錄
install_path="/usr/local/my_test_project"
data_path="/data"

# 備份目錄
bak_time=`date "+%Y%m%d%H%M%S"`
backup_dir="${data_path}/backup/${app_name}/${bak_time}"

rsync -av --backup --backup-dir=${backup_dir} * ${install_path}/


cd $CDIR
rm -rf $TMPDIR

exit 0

__ARCHIVE_BELOW__

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章