Shell Script
에서 python
을 이용하여 ini
파일 파싱
의도
쉘 스크립트를 이용해 /etc/systemd/system/서비스명
파일을 분석하려고 하니 스크립트에서 ini
형태의 파일을 분석하는게 조금 노가다성이라 python
의 ConfigParser
를 이용하면 좋겠다라는 생각이 들어 사용하였습니다.
[/etc/systemd/system/web-monitor.service] 샘플
[Unit] Description=CHIeru Webmonitoring system. [Service] ExecStart=/usr/bin/node $INSTALL_PATH/server/server.js Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=web-monitor User=root Environment=\"NODE_CONFIG_DIR=$INSTALL_PATH/config\" [Install] WantedBy=multi-user.target
위의 부분에서 제가 필요한 부분은 Service
섹션의 ExecStart
값중 INSTALL_PATH
경로를 가져오는 것입니다.
[Shell Script code]
pathFromService=$(python - <<EOF import ConfigParser import os Config = ConfigParser.ConfigParser() Config.read('/etc/systemd/system/web-monitor.service') executeCommand = Config.get('Service', 'ExecStart') executeFilePath = executeCommand.split(' ')[1] installationPath = os.path.abspath(os.path.dirname(executeFilePath) +'/../') print installationPath EOF ) LEN=$(echo ${#pathFromService}) echo $pathFromService