Shell 기술 | 솔 루 션
1)/etc/profile 에 환경 변 수 를 만 들 었 습 니 다. 지정 한 사용자 아래 에 만 든 cronjab 런 타임 에 해당 하 는 환경 변수의 값 (예: $PATH) 을 찾 을 수 없 음 을 발 견 했 습 니 다. crontab 에서 기본 $PATH =/bin:/usr/bin 을 발 견 했 습 니 다.호출 된 프로그램 이 상기 경로 에 없 으 면 프로그램 이 잘못 보고 합 니 다: xxx not found.
상기 해결 방안 의 가장 좋 은 해결 방법 은 xxx. sh 에서 첫 번 째 줄 에 이렇게 쓰 는 것 입 니 다. #!/bin/bash -l
이렇게 하면 로그 인 방식 으로 셸 script 을 실행 합 니 다. man bash 를 통 해 - l 이라는 인 자 를 지원 하 는 지 확인 할 수 있 습 니 다.
왜 프로그램의 절대 경 로 를 사용 하지 않 습 니까?deploy 는 하나의 스 크 립 트 를 여러 호스트 에 지정 하기 때문에 절대 경 로 를 지정 하 는 것 이 상당히 번 거 롭 고 유지 하기 어렵 습 니 다.
지원 되 지 않 는 다 면 - l 인 자 는?할 수 있 습 니 다: crontab - e, 그리고 한 줄 을 추가 합 니 다. 다음 과 같 습 니 다.
PATH =/your/path 1:/your/path 2:... 또는 스 크 립 트 에 한 줄 추가: source/etc/profile
2) 셸 script 실행 중 일부 명령 에 이상 코드 와 이상 정보 가 되 돌아 오 는 경우 가 많 습 니 다.우 리 는 이러한 이상 을 포착 해 야 한다. 예시 코드 는 다음 과 같다.
result=$(${mysqlpath} --skip-column-names -h"$1" -D"xxxx" -u$CONFIG_DBUSER -p$CONFIG_DBPASSWORD -e"$checking_sql" >"$log_output_file" 2>&1)
if [ "$?" -ne 0 ]; then
result=`cat"${log_output_file}"`
errMsg="Error occurred while checking zzz on ${1},msg=${result}"
echo -e "$errMsg" | mail -s "$errMsg" "${EMAIL_TO}"
fi
3) 셸 스 크 립 트 디 버 깅, 참조:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/index.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.