쉘 스크립트를 왜 필수적으로 알아두어야하는가?
보통 서버를 운영 할때에는 개인환경에서 연습하는것처럼 개별 활동하는게 아닌 mysql , apache ,tomcat 들이 모듈화를 시켜서 통합운영,관리 등을 진행하게됩니다 그래서 관리를 할떄에도 그에 맞는 절차 라는 것이있으며, 절차를 지키지 않고
관리를 하게되면 운영과정에서 큰 사고,관리의 효율성 저하가 발생하게됩니다
리눅스와 쉘 스크립트란?
리눅스는 유닉스 계열의 운영체제로, 다양한 분야에서 널리 사용되고 있는 안정적인 시스템입니다. 쉘 스크립트는 리눅스에서 쉘(Shell) 프로그램을 실행시키는 스크립트 언어로, 여러 명령어를 한 번에 실행하거나 자동화하는 데에 사용됩니다.
리눅스 쉘 스크립트 자동화하기
리눅스 쉘 스크립트를 사용하여 업무를 자동화하면 일일이 반복적인 명령어를 입력하지 않아도 되므로 작업의 효율성이 크게 향상됩니다. 자동화하는 방법은 다양하며, 주로 아래와 같은 방법들을 사용합니다.
- 파일 관리: 파일을 자동으로 생성, 이동, 복사, 삭제 등의 작업을 처리합니다.
- 작업 스케줄링: 일정한 주기로 특정 작업을 실행하도록 스케줄링합니다.
- 프로그램 실행: 특정 프로그램을 자동으로 실행시켜 원하는 결과를 얻을 수 있습니다.
- 데이터 처리: 데이터베이스와 연동하여 자동으로 데이터를 처리하고 분석하는 작업을 수행합니다.
리눅스 쉘 스크립트를 사용하면 복잡한 작업도 간단한 명령어로 처리할 수 있으므로, 시간과 노력을 절약하고 업무의 효율성을 높일 수 있습니다.
코드가 길어지는 관계로 실습과정을 글 하단에 배치하겠습니다
쉘 스크립트의 장점과 활용
쉘 스크립트의 주요 장점은 다음과 같습니다.
- 간단하고 쉬운 문법: 배우기 쉽고 사용하기 간편한 문법을 가지고 있습니다.
- 다양한 용도: 파일 관리, 프로그램 실행, 데이터 처리 등 다양한 용도로 사용할 수 있습니다.
- 자동화 가능: 반복적인 작업을 자동으로 처리할 수 있어 업무 효율을 높일 수 있습니다.
- 커스터마이징 가능: 사용자의 요구에 따라 스크립트를 커스터마이징하여 활용할 수 있습니다.
- 업무시간의 단축 그리고 업무시간의 단축(강조)
실습예제
1.파일 관리: 파일을 자동으로 생성, 이동, 복사, 삭제 등의 작업을 처리
nano trainscript.sh
#!/bin/bash
# 파일 생성
touch new_file.txt
# 파일 이동
mv new_file.txt /home/user/documents/
# 파일 복사
cp /home/user/documents/new_file.txt /home/user/desktop/
# 파일 삭제
rm /home/user/documents/new_file.txt
1.A 파일 관리 시나리오 : 오늘자 기록된 로그 파일을 백업 폴더에 보내려고한다 이를 위한 스크립트를 작성하시오.
nano daily_job.sh
#!/bin/bash
# 시나리오 파일 만들기
tail -24 var/log/auth.log > authbackup.txt
# 파일 옮기기 백업폴더라고 가정
mv authbackup.txt /home/자신이쓰는 유저이름을 넣어주세요/
sh daily_job.sh
2.작업스캐줄러 구성
여기서 작업스캐줄러 명령어는 예시를 보여주기위해서 쉘스크립트에 넣은거에요! 그냥 바로 터미널에 입력해도됩니다
2.1 위와 같은 방법으로 파일을 생성하고 실행
#!/bin/bash
# 매일 오전 2시에 스크립트 실행
0 2 * * * /home/user/scripts/daily_job.sh
3.인터넷브라우저 실행
nano webopen.sh
#!/bin/bash
# Firefox 웹 브라우저 실행
firefox https://ubuntu2304.tistory.com/
sh webopen.sh
3.1 프로그램 실행
#!/bin/bash
file-roller
4.데이터 변경 코드
#!/bin/bash
# /etc/ssh/sshd_config 파일에서 포트 번호 변경을 위해 필요한 부분 찾기
sudo sed -i '/Port /s/^#//' /etc/ssh/sshd_config
# 사용자로부터 새로운 포트 번호 입력 받기
read -p "새로운 포트 번호를 입력하세요: " new_port
# 입력 받은 포트 번호가 숫자인지 확인하기 위해 정규식 사용
if [[ ! $new_port =~ ^[0-9]+$ ]]; then
echo "올바른 포트 번호를 입력하세요."
exit 1
fi
# 입력 받은 포트 번호로 sshd_config 파일 수정
sudo sed -i "s/^Port .*$/Port $new_port/" /etc/ssh/sshd_config
# ssh 서비스 재시작
sudo service ssh restart
echo "포트 번호가 성공적으로 변경되었습니다."
sed -i '/Port /s/^#//' /etc/ssh/sshd_config 세부 설명
- sudo: 관리자 권한으로 실행하기 위해 사용하는 명령어입니다. root 권한이 필요한 작업을 수행할 때 사용합니다.
- sed: 스트림 편집기로, 텍스트를 처리하고 변형하는 유틸리티입니다.
- -i: inline 모드로 파일을 직접 수정합니다. 즉, 원본 파일을 수정하며 백업 파일은 생성하지 않습니다.
- '/Port /: /etc/ssh/sshd_config 파일에서 "Port "라는 문자열을 찾습니다. 여기서 주의할 점은 스페이스를 포함한 "Port "가 정확히 일치하는 줄을 찾습니다.
- s/^#//: 찾은 줄에서 시작하는 주석 기호(#)를 제거합니다. ^는 줄의 시작을 나타내는 정규식 기호입니다.
결론
리눅스 쉘 스크립트는 IT 분야뿐만 아니라 다양한 분야에서 활용되고 있으며, 특히 대용량 데이터 처리나 서버 운영 등에 매우 유용하게 사용됩니다.
여러분도 리눅스 쉘 스크립트를 배워 업무를 자동화하여 효율적인 작업을 경험해보세요!
'리눅스 > 리눅스 기초 과정' 카테고리의 다른 글
리눅스 docker : 컨테이너 가상화 기술로 열어가는 미래 (103) | 2023.08.10 |
---|---|
고스트 프로세스? 리눅스의 숨겨진 위협, 좀비 프로세스에 대처법 (56) | 2023.08.03 |
리눅스 su username 와 su - username 명령어: 어떤 것을 사용해야 할까요? (22) | 2023.07.30 |
리눅스 서버 운영의 기본 - 로그 관리 방법 (43) | 2023.07.29 |
초보자를 위한 리눅스 사용자 및 권한 관리 기초 가이드 (6) | 2023.07.27 |