Shell脚本无法运行命令

时间:2017-05-10 11:10:52

标签: linux bash shell

我有一个debian服务器设置了谷歌驱动器安装的驱动器 - 这些有时会被卸载,所以我已经制作了一个脚本来检查和重新安装未安装的驱动器。

脚本将检查已安装目录中的文件,如果缺少该文件,则会尝试重新安装驱动器。

它会成功检查所有坐骑,但只能重新安装“plexdrive”和“plexlib”它无法挂载“解密”。

mount命令没有任何问题,因为它在脚本之外工作正常。

有问题的剧本:

#!/bin/bash
## Small hack that makes this script work in cronjob
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home22/krealle/check.rclone.mount
## Logfile
LOGFILE=~/log/check-mounts.log
## Variables
Errors=0
## create $LOGFILE
if [ ! -f $LOGFILE ]; then
    touch $LOGFILE
    echo "INFO: Logfile created." >> $LOGFILE
fi
echo "" >> $LOGFILE
echo "$(date "+%d/%m/%Y %T")"  >> $LOGFILE
## Ultimate Check - Smaller log file!
if [[ -f /home22/krealle/mounts/plexdrive/plexdrive_mounted ]] && [[ -f /home22/krealle/mounts/plexdrive-decrypt/mounted ]] && [[ -f /home22/krealle/PlexMedia/PlexLib/mounted ]]; then
    echo "INFO: Errors found: $Errors - skipping individual checks." >> $LOGFILE
    exit
fi
## check plexdrive mount
if [[ -f /home22/krealle/mounts/plexdrive/plexdrive_mounted ]]; then
    echo "INFO: *Plexdrive* Mountcheck successful." >> $LOGFILE
else
    echo "ERROR: *Plexdrive* Drive not mounted remount in progress." >> $LOGFILE
    ## first unmount broken/busy remotes.
    fusermount -zu /home22/krealle/mounts/plexdrive

    ## Mount Plexdrive.
    screen -S  plexdrive.s: -d -m ./plexdrive -o allow_other -v 4 /home22/krealle/mounts/plexdrive

    if [[ -f /home22/krealle/mounts/plexdrive/plexdrive_mounted ]]; then
        echo "INFO: *Plexdrive* Remount successful." >> $LOGFILE
    else
        ((Errors++))
        echo "CRITICAL: *Plexdrive* Remount failed." >> $LOGFILE
    fi
fi
## check decrypt mount
if [[ -f /home22/krealle/mounts/plexdrive-decrypt/mounted ]]; then
    echo "INFO: *Plexdrive-Decrypt* Mountcheck successful." >> $LOGFILE
else
    echo "ERROR: *Plexdrive-Decrypt* Drive not mounted remount in progress." >> $LOGFILE
    ## first unmount broken/busy remotes.
    fusermount -zu /home22/krealle/mounts/plexdrive-decrypt

    ## Mount Plexdrive-decrypt.
    screen -S rclone.decrypt: -d -m rclone mount --read-only --allow-non-empty --allow-other --buffer-size 128M -v plexdrive2: /home22/krealle/mounts/plexdrive-decrypt

    if [[ -f /home22/krealle/mounts/plexdrive-decrypt/mounted ]]; then
        echo "INFO: *Plexdrive-Decrypt* Remount successful." >> $LOGFILE
    else
        ((Errors++))
        echo "CRITICAL: *Plexdrive-Decrypt* Remount failed." >> $LOGFILE
    fi
fi
## check plexlib mount
if [[ -f /home22/krealle/PlexMedia/PlexLib/mounted ]]; then
    echo "INFO: *PlexLib* Mountcheck successful." >> $LOGFILE
else
    echo "ERROR: *PlexLib* Drive not mounted remount in progress." >> $LOGFILE
    ## first unmount broken/busy remotes.
    fusermount -zu /home22/krealle/PlexMedia/PlexLib

    ## Mount PlexLib.
    unionfs-fuse -o cow,allow_other,direct_io,nonempty,auto_cache,sync_read /home22/krealle/PlexMedia/Local=RW:/home22/krealle/mounts/plexdrive-decrypt=RO /home22/krealle/PlexMedia/PlexLib

    if [[ -f /home22/krealle/PlexMedia/PlexLib/mounted ]]; then
        echo "INFO: *PlexLib* Remount successful." >> $LOGFILE
    else
        ((Errors++))
        echo "CRITICAL: *PlexLib* Remount failed." >> $LOGFILE
    fi
fi
echo "Total errors: $Errors " >> $LOGFILE

我的脚本基于找到的here.

0 个答案:

没有答案
相关问题