О скрипте / выходе Linux

Ниже не работает, когда я запускаю его как скрипт и даже не делаю выход: Пожалуйста, посоветуйте.

#!/bin/bash sudo su - test export PATH=$PATH:/opt/postgres/9.5/bin export LD_LIBRARY_PATH=/opt/postgres/9.5/lib BACKUP_RETENTION=$((7*24*60)) # 1 week LOG_RETENTION=$((7*24*60)) # 1 week BACKUP_DIR=/backup/data/pg_backup/ BACKUP_NAME=$BACKUP_DIR"test-db-`date +%Y-%m-%d-%H:%M`.zip" KEY_AUTH=`cat /var/lib/test/.test_file` LOG_DIR=/backup/log/ LOG_FILE=$LOG_DIR"test-db-`date +%Y-%m-%d-%H:%M`.log" echo "Backup :: Script Start -- $(date +%Y-%m-%d_%H:%M)" >> $LOG_FILE START_TIME=$(date +%s) dump_name=$BACKUP_DIR$test_`date +%Y%m%d`.dump pg_dump -c -p 11381 test -f "$dump_name" && zip --encrypt -P ${KEY_AUTH} ${BACKUP_NAME} "$dump_name" && rm "$dump_name" # *** Deleting Backup Based on Retention *** # find $BACKUP_DIR -name "*.zip" -mmin +${BACKUP_RETENTION} -delete # *** Deleting Logs Based on Retention *** # find $LOG_DIR -name "*.zip" -mmin +${LOG_RETENTION} -delete END_TIME=$(date +%s) ELAPSED_TIME=$(expr $END_TIME - $START_TIME) echo "Backup :: Script End -- $(date +%Y-%m-%d_%H:%M)" >> $LOG_FILE echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) " >> $LOG_FILE exit 0 

2 Solutions collect form web for “О скрипте / выходе Linux”

Первая строка в этом скрипте запускает новую оболочку под идентификатором test пользователя и ждет завершения этой оболочки перед запуском первой команды export для изменения пути. Сценарий делает именно то, что вы ему сказали.

В ответ на ответ Джона вы можете изменить свою строку sudo на это:

 if [ "$(id -un)" != "test" ]; then exec sudo -u test "$0" "$@" exit fi 

Это делается для повторного запуска скрипта с помощью пользовательского test если это не тест, который уже выполняет его.

  • Проверка вашего интернет-соединения с помощью speedtest-cli и просмотра
  • Как удаленно проверять операционную систему сервера?
  • для чего используется kbuildsycoca4?
  • Почему «измененная» дата не изменяется при изменении файла?
  • Книга по дизайну ОС Linux?
  • Как работает процесс установки linux
  • Крупнейший совместный проект в истории
  • Местный «спокойный» сервис
  • eth0: <имя> интерфейсы в Linux
  • Как избавиться от сбоев питания при использовании Linux?
  • Есть ли разница между Linux и Unix?
  • Interesting Posts

    Компиляция ядра версии 2.4 в системе с 3.2.0

    Предотвращать запуск определенных строк скрипта как root

    concat pdf страницы после pdfcrop

    Почему nginx префикс пути контекста местоположения к корневому местоположению?

    Хранить локальную копию монтирования nfs на компьютере

    Thunderbird: новое уведомление по электронной почте не работает

    Как сохранить bash env vars в массиве, затем получить доступ / изменить?

    Нарушается ли поведение CDPATH в раке bourne (/ bin / sh)

    Монтирование вместе пять gifs

    Предотвратить расширение glob в foo = "*"; echo $ foo

    Что делает «текст» точно в Bash? Может ли он использоваться в Zsh?

    Несколько серверов SSH на одной машине и прокси для перенаправления зависит от домена

    Grep 2 разных требования в одном заявлении командной строки

    Самостоятельная версия версии GCC, перезаписывающей пакет

    Как ядро ​​позволяет процессу получать сетевые данные, которые ему не принадлежат?

    Linux и Unix - лучшая ОС в мире.