首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rsync之前平一个NAS框。如果打开,则启动Rsync,如果没有,则在Rsync启动之前启动WOL,然后ping。

在Rsync之前平一个NAS框。如果打开,则启动Rsync,如果没有,则在Rsync启动之前启动WOL,然后ping。
EN

Stack Overflow用户
提问于 2013-12-23 10:16:59
回答 2查看 994关注 0票数 0

请帮帮忙。我一直在尝试运行一个脚本,其中首先我需要检查NAS框是否通过PING打开,如果是,那么挂载NAS并启动rsync。BUt,如果NAS是关闭的,发送一个WOL包,然后(睡眠6米,我知道NAS盒需要5分钟。在完全打开电源并在网络上可用之前,再次进行PING以确保NAS已经启动,然后挂载NAS并启动Rsync。

下面是我正在使用的脚本

代码语言:javascript
复制
 #!/bin/bash
VAR=`ping -s 1 -c 2 desknas > /dev/null; echo $?`

if [ $VAR -eq 0 ]; then
        echo "NAS BOX is up - Mounting NAS Share"
mount /mnt/NAS | echo "NAS Mounted Successfully"
fi

if [ $VAR -gt 0 ]; then
wakeonlan 00:xx:xx:xx:xx:xx | echo "NAS not turned on. WOL sent to NAS"
fi

sleep 6m
if [ $VAR -eq 0 ]; then
echo "NAS is UP - Mounting NAS Share"
mount /mnt/NAS | echo "NAS Mounted Successfully"
fi

脚本工作到唤醒NAS,然后等待6分钟,然后退出而不挂载NAS份额。

有人能告诉我我做错了什么吗?为什么它不去增加份额??

请帮帮忙。

你好,法鲁克·艾哈迈德

EN

回答 2

Stack Overflow用户

发布于 2013-12-28 14:29:29

当你唤醒NAS之后,在检查ping结果之前,你应该再次打开机器.难到不是么?

新年快乐!

代码语言:javascript
复制
#!/bin/bash
VAR=`ping -s 1 -c 2 desknas > /dev/null; echo $?`
if [ $VAR -eq 0 ]; then
    echo "NAS BOX is up - Mounting NAS Share"
    mount /mnt/NAS && echo "NAS Mounted Successfully"
fi
if [ $VAR -gt 0 ]; then
    wakeonlan 00:xx:xx:xx:xx:xx && echo "NAS not turned on. WOL sent to NAS"
fi
sleep 6m
VAR=`ping -s 1 -c 2 desknas > /dev/null; echo $?`
if [ $VAR -eq 0 ]; then
    echo "NAS is UP - Mounting NAS Share"
    mount /mnt/NAS && echo "NAS Mounted Successfully"
fi
票数 0
EN

Stack Overflow用户

发布于 2013-12-31 10:55:16

我能够完成任务,首先检查NAS框是否已通过PING打开,如果是,则挂载NAS并启动rsync (最后我使用了dd命令)。但是,如果NAS是关闭的,发送一个WOL包,然后(睡眠6米,我知道NAS盒需要5分钟。在完全启动并在网络上可用之前,再次进行PING,以确保NAS已经启动,然后安装NAS并启动备份过程。

下面是代码

代码语言:javascript
复制
#!/bin/bash

#####################VARIABLES DEFINED##########################

TIMESTAMP=`date +%d%m%y%s
LOGFILE=/root/logs/$TIMESTAMP/Rsync_Backup_`date +%d%m%y%s`.log
VAR=`ping -s 1 -c 2 desknas > /dev/null; echo $?
PING=`ping -s 1 -c 4 desknas > /dev/null; echo $?

################################################################

mkdir /root/logs/$TIMESTAMP
if [ $VAR -eq 0 ]; then
  echo "NAS BOX is up"
  if df | grep -q '/mnt/NAS$'
  then
    echo "Found mount point, running task"
    echo "Backup starts for the RasPi" >> $LOGFILE
    echo "=================================" >> $LOGFILE
    pv -tpreb /dev/mmcblk0 | dd of=/mnt/NAS/Admin01/RasPi_dd_image/RasPi_dd_image_`date +%d%m%y%s`.img bs=4M 2>> $LOGFILE
    echo "=================================" >> $LOGFILE
    echo "Backup Completed Successfully" >> $LOGFILE
    umount /mnt/NAS | echo "NAS UNMOUNTED" >> $LOGFILE
    echo "-----------------------------------------" >> $LOGFILE
    echo "Rsync Completed Successfully at $(date)" >> $LOGFILE
    echo "SSHing into NAS to perform Shutdown" >> $LOGFILE
    sshpass -p 'password' ssh desknas 'shutdown -p now' >> $LOGFILE
    sleep 5
    mail -a "From: RASeServer <example@email.com>" -s "RasPi Backup(dd) Status" user@gmail.com < $LOGFILE
  else
    echo "NAS not mounted - Mounting NAS Share" >> $LOGFILE
    mount /mnt/NAS | echo "NAS Mounted Successfully" >> $LOGFILE
    echo "Backup starts for the RasPi" >> $LOGFILE
    echo "=================================" >> $LOGFILE
    pv -tpreb /dev/mmcblk0 | dd of=/mnt/NAS/Admin01/RasPi_dd_image/RasPi_dd_image_`date +%d%m%y%s`.img bs=4M 2>> $LOGFILE
    echo "=================================" >> $LOGFILE
    echo "Backup Completed Successfully" >> $LOGFILE
    umount /mnt/NAS | echo "NAS UNMOUNTED" >> $LOGFILE
    echo "-----------------------------------------" >> $LOGFILE
    echo "Rsync Completed Successfully at $(date)" >> $LOGFILE
    echo "SSHing into NAS to perform Shutdown" >> $LOGFILE
    sshpass -p 'password' ssh desknas 'shutdown -p now' >> $LOGFILE
    sleep 5
    mail -a "From: RASeServer <example@email.com>" -s "RasPi Backup(dd) Status" user@gmail.com < $LOGFILE
  fi
fi
if [ $VAR -gt 0 ];then
  echo "Rsync Process starts at $(date)" >> $LOGFILE
  echo "-----------------------------------------" >> $LOGFILE
  wakeonlan 00:00:00:00:00:00 | echo "NAS not turned on. WOL sent to NAS" >> $LOGFILE
  sleep 6m | echo "Waiting 6 Minutes" >> $LOGFILE
  if [ $PING -eq 0 ];then
    echo "NAS is UP - Mounting NAS Share" >> $LOGFILE
    mount /mnt/NAS | echo "NAS Mounted Successfully" >> $LOGFILE
    echo "Backup starts for the RasPi" >> $LOGFILE
    echo "=================================" >> $LOGFILE
    pv -tpreb /dev/mmcblk0 | dd of=/mnt/NAS/Admin01/RasPi_dd_image/RasPi_dd_image_`date +%d%m%y%s`.img bs=4M 2>> $LOGFILE
    echo "=================================" >> $LOGFILE
    echo "Backup Completed Successfully" >> $LOGFILE
    umount /mnt/NAS | echo "NAS UNMOUNTED" >> $LOGFILE
    echo "-----------------------------------------" >> $LOGFILE
    echo "Rsync Completed Successfully at $(date)" >> $LOGFILE
    echo "SSHing into NAS to perform Shutdown" >> $LOGFILE
    sshpass -p 'password' ssh desknas 'shutdown -p now' >> $LOGFILE
    sleep 5
    mail -a "From: RASeServer <example@email.com>" -s "RasPi Backup(dd) Status" user@gmail.com < $LOGFILE
  else
    echo "NAS can't be turned on - Please Check Network Connections" |  mail -a "From: RASeServer <example@email.com>" -s "RasPi Backup(dd) Failed on $(date)" user@gmail.com
  fi
fi

你好,法鲁克·艾哈迈德

@Johannsa @Aif

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20741363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档