본문 바로가기
리눅스/리눅스 기초 과정

리눅스 업무 자동화 - 효율적인 업무처리 쉘 스크립트 편

by 혼자왔서연 2023. 8. 1.
반응형

쉘 스크립트를 왜 필수적으로 알아두어야하는가?

보통 서버를 운영 할때에는 개인환경에서 연습하는것처럼  개별 활동하는게 아닌 mysql , apache ,tomcat 들이 모듈화를 시켜서 통합운영,관리 등을 진행하게됩니다 그래서 관리를 할떄에도 그에 맞는 절차 라는 것이있으며, 절차를 지키지 않고

관리를 하게되면 운영과정에서 큰 사고,관리의 효율성 저하가 발생하게됩니다

리눅스와 쉘 스크립트란?

리눅스는 유닉스 계열의 운영체제로, 다양한 분야에서 널리 사용되고 있는 안정적인 시스템입니다. 쉘 스크립트는 리눅스에서 쉘(Shell) 프로그램을 실행시키는 스크립트 언어로, 여러 명령어를 한 번에 실행하거나 자동화하는 데에 사용됩니다.

리눅스 쉘 스크립트 자동화하기

리눅스 쉘 스크립트를 사용하여 업무를 자동화하면 일일이 반복적인 명령어를 입력하지 않아도 되므로 작업의 효율성이 크게 향상됩니다. 자동화하는 방법은 다양하며, 주로 아래와 같은 방법들을 사용합니다.

  1. 파일 관리: 파일을 자동으로 생성, 이동, 복사, 삭제 등의 작업을 처리합니다.
  2. 작업 스케줄링: 일정한 주기로 특정 작업을 실행하도록 스케줄링합니다.
  3. 프로그램 실행: 특정 프로그램을 자동으로 실행시켜 원하는 결과를 얻을 수 있습니다.
  4. 데이터 처리: 데이터베이스와 연동하여 자동으로 데이터를 처리하고 분석하는 작업을 수행합니다.

리눅스 쉘 스크립트를 사용하면 복잡한 작업도 간단한 명령어로 처리할 수 있으므로, 시간과 노력을 절약하고 업무의 효율성을 높일 수 있습니다.

 

코드가 길어지는 관계로 실습과정을 글 하단에 배치하겠습니다

쉘 스크립트의 장점과 활용

쉘 스크립트의 주요 장점은 다음과 같습니다.

  1. 간단하고 쉬운 문법: 배우기 쉽고 사용하기 간편한 문법을 가지고 있습니다.
  2. 다양한 용도: 파일 관리, 프로그램 실행, 데이터 처리 등 다양한 용도로 사용할 수 있습니다.
  3. 자동화 가능: 반복적인 작업을 자동으로 처리할 수 있어 업무 효율을 높일 수 있습니다.
  4. 커스터마이징 가능: 사용자의 요구에 따라 스크립트를 커스터마이징하여 활용할 수 있습니다.
  5. 업무시간의 단축 그리고 업무시간의 단축(강조)

 

실습예제

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 분야뿐만 아니라 다양한 분야에서 활용되고 있으며, 특히 대용량 데이터 처리나 서버 운영 등에 매우 유용하게 사용됩니다.

여러분도 리눅스 쉘 스크립트를 배워 업무를 자동화하여 효율적인 작업을 경험해보세요!

 

반응형

Animated Rainbow Nyan Cat