空き容量を調べてからバックアップする
スクリプト名 : backup2.sh
書式 : backup2.sh バックアップ元ディレクトリ バックアップ先ディレクトリ 識別名 [必要空き容量]
目的 : 空き容量を調べてからバックアップをする
戻り値 : 成功:0 失敗:1 エラー:9
#!/bin/sh . Error_Msg.sh && . Arg_Nums.sh && . Chk_File.sh || exit 9 Arg_Nums -ge 3 "$@" && Arg_Nums -le 4 "$@" || exit 9 _DEST_DIR=$2 _FILE_NAME=$3-$(date +%Y%m%d).tar.gz _LIMIT=$4 #相対パスの場合は絶対パスに変換する _PATH_TYPE=$(echo "$_DEST_DIR" | cut -c1) [ $_PATH_TYPE != / ] && _DEST_DIR="$PWD/$_DEST_DIR" [ "$_LIMIT" = "" ] && _LIMIT="100" _LIMIT=$(( $_LIMIT * 1024 )) #dfの結果の1行目を削除して4番目のフィールドのみ取り出す(空き容量) _FREE_SPACE=$(df "$_DEST_DIR" | sed 1d | awk '{print $4}') [ "$_FREE_SPACE" -gt "$_LIMIT" ] || \ { Error_Msg "$0" "No enough disk space avaliable." exit 1; } cd "$(dirname "$1")" tar czpf "$_DEST_DIR/$_FILE_NAME" "$(basename "$1")" [ $? = 0 ] || exit 1