Вопрос

В нашем проекте мы записываем множество журналов приложений (иногда они очень полезны) в tmp папка.

В этой папке у нас есть каталоги компонентов, такие как:

  • API
  • электронная почта 2sms
  • запланированная отправка
  • выставление счетов
  • и т.д.В общем, менее 10 папок.

Проблема: со временем появляются новые папки компонента - каждая из этих папок должна быть доступна для записи.

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

Как эта проблема может быть решена? Как этот процесс может быть автоматизирован (задача Apache Ant, свойства SVN, скрипт приложения - который должен отвечать за задачу)?

Окружающая среда: Среды разработки - Ubuntu, Windows;производство - FreeBSD

Это было полезно?

Решение

Быстрый и грязный метод, который я использовал в большинстве компаний, в которых я работаю, был примерно таким:

  1. Поместите весь код в систему управления версиями (например, SVN или что-то в этом роде), чтобы у всех разработчиков был единый источник файлов.Очевидно, что ты уже делаешь это. Ура!
  2. Поместите в корень этого кода файл с именем setup_permissions.sh который обновляет все данные о локальной среде.Это может включать разрешения или все, что вам нужно для запуска.
  3. Каждое утро все программисты делают svn update, который обновляет файлы, а также setup_permissions.sh.
  4. Они пытаются запустить свой код.Видите проблему.Они бегут setup_permissions.sh.
  5. Все хорошо в мире!

Что касается содержания setup_permissions.sh, это могло бы быть что - то вроде:

#/bin/sh
TMP=/tmp

mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing

И добавляйте любые другие команды, которые, по вашему мнению, вам нужны.
(О, и не используйте chmod 777...это ужасная идея.Просто посмотрите на это как на пример.)

Ключом к такому подходу является дисциплина.Вы должны доверять своим программистам в том, что они обладают достаточной дисциплиной для запуска setup_permissions.sh когда они обновляют свои локальные среды .То же самое касается того, кто обновляет производственную систему.

У вас также должна быть дисциплина для обновления setup_permissions с любыми изменениями, которые вы вносите в структуру каталогов, и любыми необходимыми изменениями разрешений - вместо того, чтобы просто вносить изменения вручную на вашем компьютере и останавливаться на этом.(И то же самое касается всех других разработчиков, которые вносят изменения в структуру каталогов.)

Другие советы

тот (программа / компонент), кто создает журнал, должен нести ответственность за то, чтобы файлы журнала были доступны для записи всем - использовать mod = 777 (доступно для записи всем) при создании журналов.

если у процесса развертывания есть сценарий установки, также сделайте это в script.

mkdir и chmod в простом сценарии оболочки должно быть достаточно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top