lecture/script 언어

입력&출력[ 재지향(>,>>,2&1), 파이프(|)]

infra 2021. 11. 25. 17:08

mart라는 텍스트파일을 만들어 활용한다.

 

 

[root@centos7 /]# cat mart.txt
ABC
[root@centos7 /]# echo "MART" >> mart.txt
[root@centos7 /]# cat mart.txt
ABC
MART
[root@centos7 /]# echo "ABC MART" >> mart.txt
[root@centos7 /]# cat mart.txt
ABC
MART
ABC MART
[root@centos7 /]# echo "ABC MART" > mart.txt
[root@centos7 /]# cat mart.txt
ABC MART

 

echo 로 꺽쇠(리다이렉션) 1개와 2개의 차이점이 보일 것이다.

 

1개를 사용했을 시, 해당 내용을 덮어쓰는 cp 명령어와 비슷한 반면, 2개를 사용했을 시 추가로 내용을 덧붙을 수 있게 된다.

 

script를 짤 때도 보통 2>  또는 2>& 로 설정할 때도 있다.

입/출력장치의 유형  
stdin :입력장치 장치번호 0
stdout : 표준 출력 장치번호1
stderr : 에러 출력 장치번호 2

 

ls /tmp/ubuntu16.txt > result.txt 2>&1  또는

ls /tmp/ubuntu16.txt &> result.txt

 

명령어의 의미는 /tmp/ubuntu16.txt 파일에 리스트 명령어를 통해 출력 결과물의

성공값(표준 출력)을 result.txt로 보내고, 에러값(에러출력2)를 1번(표준출력1)과 같은곳으로 보내라.


 

실무에서 간혹 리부팅되거나, 서버가 다운되었을 때, 파악 할시 보통 해당 명령어를 수행해서 확인하기도 한다.

 

#uptime, #date, #history | more, 그 중 파이프라인을 활용해서 more 로 통해 여러 페이지로 계속 드래그해서 봐야할 때 불편하다. 그래서 | more 옵션을 통해서도 파악하고, vi 또는 vim 으로도 해당 에러 로그를 파악하기도 한다.

 

 

번외 - 실무적 관점)

팀원간의 소통이 없을 시 외 꺼졌는지 파악 하기 위해 history를 통해 어떤 명령어를 마지막에 수행했는지 파악한다.

아니면, 프로세스문제가 있는지 /var/log/messages, /var/log/dmesg 및 서비스로그(/var/log/httpd/error_log ), 등등을 파악하기도 한다.

 

해당 BMC 를 원격으로 접속하여 서버를 부팅시킬 수도 있으나, 아예 하드웨어적으로 부팅문제라면, 부팅되지 않거나, 이미  리부팅이 된 경우도 간혹 있다.

 

서비스개발자들과 간혹 디스크 증설 또는 관련 작업 때문에 서버를 꺼달라고 요청하거나, 해당 서버에 올라가있는 apache,tomcat, weblogic, 등등의 서비스가 올라와 있는 경우가 있을 땐 해당 담당자에게 해당 프로세스를 종료해달라고 요청하여 그다음 서버를 끄는 경우도 있다.

 

 

'lecture > script 언어' 카테고리의 다른 글

환경변수 및 shell  (0) 2021.11.09
기초 shell script 문법 2 (awk ,sed 설명 및 실습활용)  (0) 2021.10.29
기초 shell script 문법 1  (0) 2021.10.29