Журнал выполнения сценария иногда выглядит так, как будто это HTML

( я знаю, что это старый пост, но...)

размонтировать "ленивую" точку монтирования:

umount -l -f /mount/piont

       -l, --lazy
          Lazy unmount.  Detach the filesystem from the filesystem hierarchy now, and cleanup all references to  the  filesystem  as
          soon as it is not busy anymore.  (Requires kernel 2.4.11 or later.)

Это размонтирует устаревшую точку монтирования NFS, и работа сервера не будет мешать устаревшему монтированию NFS.

Имейте в виду, что вам нужно вручную смонтировать общий ресурс NFS, когда он появится снова

0
27.05.2020, 09:26
1 ответ

Спасибо Кусалананде за указание на ошибку в моих рассуждениях. У меня есть решение моей насущной проблемы. Я опубликую это как ответ, потому что, хотя он и неэлегантен, он решает мою проблему и тем самым может помочь кому-то другому.

Короче говоря, я сделал функцию, которая имеет выбор из 9 возможных источников для получения внешнего IP, вместо отдельных операторов в первом скрипте, который я вызываю. В идеале, поскольку он всегда использует первый вариант, если только я не хочу каждый раз использовать другой, но я не вижу простого способа добиться этого.

#!/bin/bash
# Going to be saved in the scripts directory as function_get_ip.sh then can be included in another script
# just by sourcing this one e.g after the variable definitions in the other script have the line
# source function_get_ip.sh

#define a function to get the current external IP
RetrieveIP1="curl wtfismyip.com/text"
RetrieveIP2="curl ifconfig.me"
RetrieveIP3="curl ifconfig.co"
RetrieveIP4="curl 'https://api.ipify.org?format=txt'"
RetrieveIP5="curl http://wooledge.org/myip.cgi"
RetrieveIP6="curl http://CheckIP=.dyndns.org  2> /dev/null| perl -pe  's,.*Address: (\d+\.\d+\.\d+\.\d+).*,$1,'"
RetrieveIP7="wget -qO - http://ipecho.net/plain | xargs echo"
RetrieveIP8="wget -qO - icanhazip.com"
RetrieveIP9="wget -qO - ipv4bot.whatismyipaddress.com"
CheckIP=0

function get_ip {
                                  IP=$($RetrieveIP1) 
                                  if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
                                  then
                                  CheckIP=1
                                  else
                              IP=$($RetrieveIP2) 
                              if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
                              then
                              CheckIP=2
                              else
                          IP=$($RetrieveIP3) 
                          if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
                          then
                          CheckIP=3
                          else
                      IP=$($RetrieveIP4) 
                      if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
                      then
                      CheckIP=4
                      else
                  IP=$($RetrieveIP5) 
                  if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
                  then
                  CheckIP=5
                  else
              IP=$($RetrieveIP6) 
              if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
              then
              CheckIP=6
              else
          IP=$($RetrieveIP7) 
          if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
          then
          CheckIP=7
          else
      IP=$($RetrieveIP8) 
      if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
      then
      CheckIP=8
      else
  IP=$($RetrieveIP9) 
  if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
  then
  CheckIP=9
                  fi
                fi
              fi
            fi
          fi  
        fi
      fi
    fi
  fi
}

Вызов функции выдает результат $CheckIP с ненулевым значением в случае успеха и $IP с адресом

0
18.03.2021, 23:32

Теги

Похожие вопросы