Хорошо, существует причина, что оборудование класса сервера существует и еще не было универсально заменено дешевыми товарными рабочими столами.
И, нет, это не просто FUD или близорукость на частях специалистов по ИТ во всем мире.
Можно ли использовать рабочие столы? Несомненно, но Вы никогда не будете поправляться, чем настольная производительность из них. И это только относится к скоростям ЦП и суммам RAM. Хорошее серверное оборудование создается как общеизвестный "кирпич, Вы знаете то, что", и разработан, чтобы продолжать работать при условиях, которые не выдержит средняя настольная машина.
Однако существуют времена, когда рабочий стол хорошо, и лучший случай для этого - когда Вы абсолютно не можете получить серверное оборудование. Но если Вы уже потратите деньги, то Вы получите лучшую долгосрочную производительность от аппаратных средств, разработанных для задачи.
FWIW, если необходимо сэкономить, необходимо все еще добраться, сервер градуируют аппаратные средства. Серверы начального уровня могут быть куплены по очень разумным ценам и все еще были бы шагом от недорогих настольных машин.
Необходимо, вероятно, экспортировать PS1. Вместо того, чтобы редактировать bashrc пользователя, необходимо отредактировать систему bashrc: пользователь должен смочь переопределить подсказку с их выбором.
Во-вторых, для распределения файла используют или scp или clusterssh. При установке rsa ключа, Вы не должны даже вводить свой пароль несколько раз для scp:
eval `ssh-agent`
ssh-add
for h in `cat ~/hostlist`; do
scp ~/newbashrc ${h}:/etc/bashrc
done
eval `ssh-agent -k`
Это не должна больше быть работа, чем какое-либо существующее управление конфигурацией, которое Вы используете для развертывания новых конфигураций через эти десять серверов. Если это - персистентная проблема для Вашей организации, Вы определенно хотите изучить инструмент управления конфигурацией как Puppet/Chef/Cfengine и инструмент развертывания как MCollective/RunDeck/Capistrano/Fabric.
Редактирование/etc/profile
/etc/profile выполняется, когда пользователь входит в систему. ~/.bashrc выполняется для других оболочек (например, открытие xterm)
экспортируйте PS1 = "[\e [0; 35 м] [\u \t \h \W] \$ [\e [0m]"
Вы, вероятно, захотите вынуть \h
Вы могли отредактировать bashrc в масштабе всей системы в/etc/bashrc, но это легко перезаписывается любым пользователем с доступом оболочки. Вы могли довольно легко написать сценарий чего-то для выставления нового .bashrc для списка пользователей с помощью scp.
Ваша вторая опция кажется выполнимой, если можно отправить команды на все серверы сразу для обновления файлов. Для этого Вы могли использовать pssh на Linux (http://code.google.com/p/parallel-ssh/) или Отправитель Команды PuTTY (http://www.millardsoftware.com/puttycs) с PuTTY в Windows.
Вы могли создать команду sed/awk, которая могла заменить строку в бомже .bashrc и/etc/bashrc и пользователях bashrc файлы. Затем отправьте это как одну команду ко всем системам.
Команда sed собирается, вероятно, быть большей частью работы. К сожалению, я не так хорош с sed и awk. Кто-то еще может предлагать больше понимания в этой области. Надеюсь, что эта информация помогает!
вы можете создать исполняемый скрипт в каталоге /etc/profile.d/,например: /etc/profile.d/custom_prompt.sh, с этим содержанием:
#!/bin/sh
export PROMPT_COMMAND=’export PS1="[\e[0;35m][\u \t \h \W]\$ [\e[0m]"‘
При использовании этого метода вам не нужно изменять какой-либо файл, чтобы изменить приглашение bash для всех пользователей.
Мне пришлось сделать это для нескольких серверов ubuntu, и для всех пользователей я хотел, чтобы в приглашении отображалось полное доменное имя, а не только имя хоста (в противоположность тому, что вы делали). Я обнаружил, что изменения /etc/bash.bashrc недостаточно. Я также пробовал возиться с разными файлами profile.d, но это было бесполезно, потому что домашний .bashrc всегда применяется последним.
В конечном итоге я отправил приведенный ниже сценарий с доступным доступом на все серверы, и это помогло всем пользователям и всем будущим приложениям.
#!/bin/bash
for userfolders in `ls -d /home/*/`
do
for bashfiles in `ls -1 ${userfolders}.bashrc`
do
sed -i 's|u@\\h|u@\\H|g' $bashfiles
done
done
sed -i 's|u@\\h|u@\\H|g' /etc/bash.bashrc
sed -i 's|u@\\h|u@\\H|g' /etc/skel/.bashrc
sed -i 's|u@\\h|u@\\H|g' /root/.bashrc