glusterfs

Форк
0
/
prove_run 
77 строк · 1.5 Кб
1
#!/bin/bash
2

3
set -u
4

5
function reset() {
6
    while pgrep gluster >/dev/null; do
7
        pkill -9 gluster
8
        sleep 0.1
9
    done
10

11
    findmnt -t fuse.glusterfs -o TARGET | tail -n +2 | xargs -r -n 1 umount
12
    mkdir -p /d/dev
13
    vgremove -fyS "vg_name=~_$(hostname -s)_"
14
    for dev in $(ls /d/dev/ 2>/dev/null); do
15
        losetup -d /d/dev/${dev}
16
        rm -f /d/dev/${dev}
17
    done
18
}
19

20
function clean_all() {
21
    rm -rf /d/* 2>/dev/null
22
    mkdir /d/dev
23
    fstrim /d
24

25
    rm -rf /var/log/glusterfs 2>/dev/null
26
    mkdir -p /var/log/glusterfs 2>/dev/null
27

28
    rm -rf /var/lib/glusterd 2>/dev/null
29
    tar -xf /tmp/glusterd-backup.tgz -C /var/lib
30
}
31

32
function prepare() {
33
    reset
34

35
    tar -czf /tmp/glusterd-backup.tgz -C /var/lib glusterd
36

37
    clean_all
38
}
39

40
function terminate() {
41
    local name="${1}"
42
    local url
43

44
    reset
45

46
    tar -czf /tmp/glusterfs-logs.tgz -C /var/log glusterfs
47

48
    if [[ -n "${HOST_URL}" ]]; then
49
        url="${HOST_URL}/run/${name%.t}.$(date --utc +"%Y%m%d%H%M%S").tgz"
50
        curl -s -X PUT --upload-file /tmp/glusterfs-logs.tgz "${url}" >/dev/null
51
    fi
52

53
    clean_all
54
}
55

56
prepare
57

58
ROOT="/root/glusterfs"
59
NAME="$(realpath --relative-to "${ROOT}" "${1}")"
60
LOG="/tmp/output.log"
61

62
pushd "${ROOT}" >/dev/null
63

64
echo "$(date --utc --rfc-3339 seconds) - $(hostname -s)" >"${LOG}"
65
res="0"
66
if ! prove -vmfe /bin/bash "${NAME}" >>"${LOG}" 2>&1; then
67
    res="1"
68
fi
69
echo "$(date --utc --rfc-3339 seconds) - Result: ${res}" >>"${LOG}"
70

71
mv "${LOG}" /var/log/glusterfs/
72

73
popd >/dev/null
74

75
terminate "${NAME}"
76

77
exit ${res}
78

79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.