Сценарий оболочки linux, который позволяет запускать и останавливать приложение

Я нашел решение этой проблемы (извините за ответ на мой собственный вопрос ). Я отвечаю на него, потому что если у кого-то есть эта проблема, он / она может использовать решение, которое я нашел.

На самом деле проблема возникает как на стороне сервера, так и на стороне клиента.

Проблема на стороне сервера заключалась в том, что /home/<user>/.ssh/known_hostsфайл на сервере имел неверную запись для установки Ubuntu, так как обе операционные системы имели одинаковый идентификатор оборудования и один и тот же IP-адрес (статический IP-адрес ), но разные ключи.

Вот что я сделал:

ssh-keygen -f /home/<user>/.ssh/known_hosts -R ip.ip.ip.ip

В моем случае ip.ip.ip.ip — это статический общедоступный IP-адрес моей сети. Выполните эту команду как на сервере, так и на клиентской машине, где ip.ip.ip.ip соответственно изменится.

Я не знаю, что делает эта команда (Я нашел это решение с помощью поиска в Google / пробной версии -ошибка)

Вы также можете скопировать известный _файл hosts клиентских машин на другие клиентские машины или операционные системы.

Извините за мой плохой английский.

И если кто-нибудь знает, что делает эта команда и почему эта команда решила проблему, пожалуйста, сообщите нам! Спасибо.

Бинго решено!

1
29.11.2019, 08:59
1 ответ

Учитывая приведенный ниже шаблон сценария bash --, вы можете либо

  • добавить длинные -опции --startи --stopдля установки переменных и использования их в операторе if -.
  • вы можете проверить, находятся ли startили stopв ${remaining_args[@]}, а затем использовать эту информацию:
if printf '%s\n' ${remaining_args[@]} | grep -Pq '^start$' ; then
  start your app
elif printf '%s\n' ${remaining_args[@]} | grep -Pq '^stop$' ; then
  stop your app
fi

А вот и шаблон:

#!/bin/bash - 
#===============================================================================
#
#          FILE: <filename here>
#
#   DESCRIPTION: 
#
#       OPTIONS: ---
#  REQUIREMENTS: ---
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: 
#  ORGANIZATION: 
#       CREATED: 
#       LICENSE: 
#      REVISION:  ---
#===============================================================================

#=== Init ======================================================================
set -o nounset   # exit on unset variables.
set -o errexit   # exit on any error.
set -o errtrace  # any trap on ERR is inherited
#set -o xtrace    # show expanded command before execution.

unalias -a       # avoid rm being aliased to rm -rf and similar issues
LANG=C           # avoid locale issues
VERBOSE=         # Don't be verbose, unless given '-v'-option

ScriptVersion="1.0"

trap "cleanup" EXIT SIGTERM SIGINT

#=== Functions =================================================================
usage () {
  echo "

  Usage :  ${0##/*/} [options] [--]

  Options:
  -h|--help     Display this message
  -V|--version  Display script version
  -v|--verbose  Print informational text

  "
  exit 0
} # ----------  end of function usage  ----------

option_handling () {
  # see /usr/share/doc/util-linux/examples/getopt-parse.bash
  OPTS=$(getopt --name "$0" \
    --options 'hVv' \
    --longoptions 'help,version,verbose' \
    --shell bash \
    -- "$@") \
    || (echo; echo "See above and try \"$0 --help\""; echo ; exit 1)

  eval set -- "$OPTS"
  unset OPTS

  while true ; do
    case "$1" in
      -h|--help)
        usage
        ;;
      -V|--version)
        echo "$0 -- Version $ScriptVersion"; exit 0
        ;;
      -v|--verbose)
        VERBOSE=true
        shift
        ;;
      --)
        shift ; break
        ;;
      *)
        echo 'This should not have happened.  Probably getopt is misconfigured.'
        exit 2
        ;;
    esac
  done
  remaining_args=( "$@" )
} # ----------  end of function option_handling  ----------

_verbose () { # printf '%s\n' if VERBOSE, be silent otherwise
  if [[ ${VERBOSE} ]]; then
    _verbose() {
      printf '%s\n' "$@"
    }
    _verbose "$@"
  else
    _verbose() {
      :
    }
  fi
} # ----------  end of function _verbose  ----------

cleanup () { # Will be called by the trap above, no need to call it manually.
  :
} # ----------  end of function cleanup  ----------

# here you could source your scripting-libraries
# and make use of flatten.sh later.
# see https://github.com/markgraf/flatten.sh.git

#=== Main ======================================================================
main () {
  option_handling "$@"

  # Your script goes here...

} # ----------  end of function main  ----------

main "$@"

#=== End =======================================================================


1
27.01.2020, 23:40

Теги

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