반응형

참고주소 : https://dev.to/paulasantamaria/change-the-timezone-on-a-heroku-app-2b4

Heroku 앱에서 타임 존(time zone) 변경하기

저는 몇 주 전에 Heroku를 발경하였습니다. 특히 제 팀이 원격으로 개발 환경을 사용하는 무료 플랜이 있기 때문에 당신의 앱을 배포하는 멋진 플랫폼입니다.

최근 저는 새로운 프로젝트 작업을 시작했습니다. 이 특별한 프로젝트에서 주요 연산의 대부분은 날짜와 관련되어 있습니다. 앱은 프론트 엔드를 Angular 5로 만들었고 백 엔드는 Node.js로 만들었습니다.

모든 것은 제 로컬 환경에서 완벽히 작동하였지만 제가 Heroku로 배포하였을 때 모든 날짜 연산은 임의로 작동하기 시작하였습니다.(스포일러: 랜덤은 아닙니다)

여기에 방법이 있습니다. 저는 아르헨티나 출신이고, 로컬 서버에서 배포된 프론트 엔드가 있지만 백엔드는 Heroku에 있고 새로운 Heroku 앱의 기본 지역은 "미국(us)" 이었습니다. 기본적으로 제 프론트 엔드와 백 엔드는 다른 타임 존 이었습니다.

운이 좋게도 Heroku는 우리에게 새로운 설정 변수를 추가함으로서 우리의 앱의 타임 존을 변경할 수 있도록 합니다.

Heroku CLI에서

  1. 명령어 shell을 엽니다.
  2. Heroku로 로그인 합니다.
  3. 당신의 앱 디렉터리를 찻습니다.
  4. 다음처럼 TZ를 설정합니다.
heroku config:add TZ="America/Argentina/Buenos_Aires"

Heroku dashboard(web)에서

  1. 브라우저에서 Heroku dashboard로 로그인 합니다.
  2. 앱을 찻습니다.
  3. Settings 탭을 클릭합니다.
  4. "Reveal Config Vars" 버튼을 누릅니다.
  5. "TZ"를 키로 설정하고 타입 존의 값(예:America/Argentina/Buenos_Aires)을 설정합니다.
  6. Add(추가) 버튼을 누릅니다.

올바른 TZ값인지 어떻게 알 수 있나요

다음 링크에서 타임 존의 전체 목록을 확인할 수 있습니다.

새로운 TZ 값 확인하기

Heroku CLI에서 새로운 설정 변수의 값을 다음 명령어로 확인할 수 있습니다.

heroku config:get TZ

Heroku에 대한 더 많은 정보

Heroku가 무엇입니까?

Heroku 설정 변수에 대한 더 많은 정보

설정 변수

반응형
반응형

출처 : https://stackoverflow.com/questions/6318809/how-do-i-grab-an-ini-value-within-a-shell-script

shell 스크립트에서 INI 파일 설정값을 얻는 방법은?

다음과 같은 parameters.ini 파일이 있습니다.

[parameters.ini]
    database_user    = user
    database_version = 20110611142248

bash 쉘 스크립트 내에서 parameters.ini 파일에 지정된 데이터베이스 버전을 읽고 사용하여 처리하려고 합니다.

#!/bin/sh
# 스크립트에서 사용하기 위해 parameters.ini 파일에서 데이터베이스 버전을 가져와야 함
PHP app/console doctrine:migrations:migrate $DATEBASE_VERSION

이를 어떻게 할 수 있을까요?


31개의 답변 중 1개

해당 라인의 값을 grep 하고난 뒤 awk를 사용하는 것은 어떨까요?

version=$(awk -F "=" '/database_version/ {print $2}' parameters.ini)
반응형
반응형

출처 : https://stackoverflow.com/questions/22683269/how-to-parse-a-config-file-conf-in-shell-script

shell 스크립트에서 설정 파일 (*.conf) 파싱하는 방법

저는 shell 스크립트 신입입니다. app.conf 파일이 다음처럼 있습니다.

[MySql]
user = root
password = root123
domain = localhost
database = db_name
port = 3306

[Logs]
level = logging.DEBUG

[Server]
port = 8080

저는 shell 스크립트에서 이 파일을 파싱하여 mysql 설정 정보를 추출하고 싶습니다. 어떻게 할 수 있을까요?

4개의 답변 중 1개의 답변만 추려냄

저는 다음처럼 하였습니다.

pw=$(awk '/^password/{print $3}' app.conf)
user=$(awk '/^user/{print $3}' app.conf)

echo $pw
root123

echo $user
root

$()는 변수 pw를 내부 명령의 출력으로 설정합니다. 안쪽의 명령은 app.conf 파일에서 password 로 시작하는 줄(line)에서 세 번째 필드를 출력합니다.

편집됨

설정 파일에서 많은 값을 파싱하려면 설정 파일 이름에 대한 변수를 만듭니다.

CONFIG=app.conf
pw=$(awk '/^password/{print $3}' "${CONFIG}")
user=$(awk '/^user/{print $3}' "${CONFIG}")

2개의 다른 포트가 있다면... 올바른 section이 나왔을 때 flag를 1로 설정하고 당신이 찾는 포트가 나왔을 때 종료(exit) 합니다.

mport=$(awk '/^\[MySQL\]/{f=1} f==1&&/^port/{print $3;exit}' "${CONFIG}")
sport=$(awk '/^\[Server\]/{f=1} f==1&&/^port/{print $3;exit}' "${CONFIG}")

역자 추가내용

저 같은 경우에는 다음처럼 파싱처리 하였습니다.

pw=$(awk -F "=" '/^\[MySQL\]/{f=1} f==1&&/^password/{print $2;exit}' "${CONFIG}")
반응형

+ Recent posts