как запустить скрипт с чистой оболочкой входа в систему

Вы можете сделать это с помощью netcat (ssh тоже работает; но я предполагаю, что и старая, и новая машина находятся в одной и той же "защищенной" локальной сети).

Кратко:

  • Постройте вашу ВМ с вашим дисковым пространством и все такое.
  • Загрузитесь на установочный DVD FreeBSD (вероятно, не имеет значения, какая версия).
  • Используйте опции после установки для разметки и форматирования дисков (они не обязательно должны быть одинакового размера, если они достаточно большие для ваших данных). Не забудьте поменять местами.
  • Добавьте загрузочные блоки (я еще не делал этого для EFI, но ваша ВМ должна поддерживать MBR, что я делал успешно несколько раз)
  • запустите "Fixit shell"
  • смонтируйте вашу новую файловую систему[ы] где-нибудь

    Fixit# mkdir /mnt/root
    Исправление# mount /dev/da0s1a /mnt/root
    
  • получите сетевой адрес (ifconfig, или dhclient, как вы предпочитаете -- раньше вам приходилось создавать /var/db до того, как dhclient заработал; но я не думаю, что это необходимо?)

  • запустите netcat-приемник на вашей новой машине:

    Fixit# cd /mnt/root
    Исправить # nc -l 80 | tar -xvf -xvf -
    
  • на старой машине, cd, чтобы укорениться и начать выкачивать tar на новую машину.

     # cd /
    # tar -cvf - . | nc 10.20.0.102 80
    
  • повторите для каждой из ваших файловых систем

  • , возможно, вам придется отредактировать /etc/fstab на новой машине, если, например, ваше старое аппаратное обеспечение имеет IDE диски, а ваше новое - SCSI.

Вы можете дополнительно:

  • добавить сжатие к командам tar (-z или -j по вашему выбору)
  • использовать dd вместо tar. Я никогда не пробовал, но это должно сработать. Если вы используете dd, то, скорее всего, вам не придется разбивать или форматировать новые диски, но они должны быть того же размера или большего.
1
05.05.2015, 15:30
2 ответа

Вместо того, чтобы вручную запускать ./script.sh stop;./catalina.sh start и отдельно, имея кронджоб, который делает то же самое, используйте /etc/init. скрипт d/catalina, который может настроить все ваши ограничения, env vars и т.д.; затем, чтобы запустить/остановить, просто запустите sudo /etc/init.d/catalina start (или stop, restart, и т.д.); или, более просто (если доступно) sudo service catalina start (и т.д.). Это несколько ошибка, склонная запускать/останавливать процессы из разных env, как вы нашли; поместив все в init скрипт, вы поможете получить процессы запуска/остановки последовательно и чисто (и правильно зарегистрированы).

Правка: и если вы не используете sudo и не используете init-скрипты, то просто напишите этот же скрипт (как если бы вы создавали init-скрипт), сохраните его в вашем $HOME/bin (или где угодно), и внутри этого скрипта установите зависть (лимиты, vars env и т.д.) по желанию; вызовите это из cron, shell, remote ssh, puppet и т.п. Позже, если вы захотите настроить это как сервис, как это обычно бывает, эта работа уже будет выполнена.

0
27.01.2020, 23:50

Расширения скрипта оболочки вполне полезны. Например, я часто пишу сценарии, которые имеют несколько файлов на нескольких языках (например, bash, awk и lua) в одном каталоге. Если мне нужно будет искать строку только в файлах Bash, расширение делает это очень удобно, чтобы уменьшить ложные срабатывания. Или если я хочу сделать подсчет строки всего моего Bash Code для этого проекта.

Это боль, чтобы набрать расширение при запуске программы, поэтому я также делаю SymLink без расширения к основным исполняемым исполняемым, редактировать / запустить его без необходимости вводить расширение каждый раз. SymLinks дешевые и легкие.

-121--10103-

Только корень может поднять текущий жесткий предел. Предположительно, ограничение по умолчанию для этого пользователя, установленного в /etc/security/limits.conf , составляет 16384, но в файле инициализации есть что-то, что устанавливает предел на 4096.

Если вы можете, изменить Этот файл инициализации установить только мягкий предел. Мягкий предел можно изменить в любом другом направлении в любое время любым пользователем, единственным ограничением является то, что он не может быть выше жесткого предела. То есть заменить ULIMIT -A 4096 ULIMIT -SA 4096 .

То, что вы делаете, это все равно. Вы, вероятно, не должны работать с оболочкой, так как пользователь, который запускает службу, вы должны выполнять обслуживание с вашей учетной записи, используя Sudo для запуска команд с разными привилегиями. Итак, чтобы начать службу, вы не должны использовать ./ Script.Sh Stop; ./ CALINA.SH Пуск Но

sudo -u user ./script.sh stop; sudo -u user ./catalina.sh start

Это не запускает файлы инициализации, которые могут устанавливать ограничение.

В принципе, возможно, что конфигурация вашей системы устанавливает различные ограничения в зависимости от того, как вы входите в систему, установив разные правила через PAM ( /etc/pam.conf или / etc / pam. D / * ). Однако это будет странная, необычная конфигурация.

1
27.01.2020, 23:50

Теги

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