9

リモート システムをバックアップ パーティションに rsync する cron ジョブをセットアップしたいのですが、次のようになります。

bash -c 'rsync -avz --delete --exclude=proc --exclude=sys root@remote1:/ /mnt/remote1/'

「設定して忘れる」ことができるようにしたいのですが、/mnt/remote1アンマウントされたらどうなりますか?/mnt/remote1(再起動後など)ローカルファイルシステムをいっぱいにするのではなく、マウントされていない場合はエラーを出したいです。

編集:
これがスクリプトについて思いついたものです。クリーンアップの改善は高く評価されています(特に空の場合...そうでなければ、それらを空のままにしたり、エラーをbashしたりすることはできませんでした)

#!/bin/bash

DATA=data
ERROR="0"

if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1\$"; then
    ERROR=0
else
    if mount /dev/vg/$1 /mnt/$1; then
        ERROR=0
    else
        ERROR=$?
        echo "Can't backup $1, /mnt/$1 could not be mounted: $ERROR"
    fi
fi

if [ "$ERROR" = "0" ]; then
    if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1/$DATA\$"; then
        ERROR=0
    else
        if mount /dev/vg/$1$DATA /mnt/$1/data; then
            ERROR=0
        else
            ERROR=$?
            echo "Can't backup $1, /mnt/$1/data could not be mounted."
        fi
    fi
fi

if [ "$ERROR" = "0" ]; then
    rsync -aqz --delete --numeric-ids --exclude=proc --exclude=sys \
        root@$1.domain:/ /mnt/$1/
    RETVAL=$?
    echo "Backup of $1 completed, return value of rsync: $RETVAL"
fi
4

5 に答える 5

10

mountpointこれに対する最良の解決策のようです: パスがマウントポイントの場合は 0 を返します:

#!/bin/bash
if [[ `mountpoint -q /path` ]]; then
    echo "filesystem mounted"
else
    echo "filesystem not mounted"
fi

LinuxQuestions にあります。

于 2010-08-26T14:39:12.367 に答える
5
if cut -d' ' -f2 /proc/mounts | grep '^/mnt/remote1$' >/dev/null; then
    rsync -avz ...
fi

からマウントされたパーティションのリストを取得し、/proc/mounts一致するもののみを取得して/mnt/remote1(マウントされている場合は、grep の出力を に送信します)、ジョブ/dev/nullを実行します。rsync

最近grepの には-q、出力を に送信する代わりに使用できるオプションがあります/dev/null

于 2008-08-26T03:43:59.753 に答える
3

簡単なグーグルで、ファイルシステムがマウントされているかどうかを確認できるこのbashスクリプトにたどり着きました。df または mount の出力を grep する方法があるようです:

if df |grep -q '/mnt/mountpoint$'
    then
        echo "Found mount point, running task"
        # Do some stuff
    else
        echo "Aborted because the disk is not mounted"
        # Do some error correcting stuff
        exit -1
fi
于 2008-08-26T03:42:52.237 に答える