我有一个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.