728x90
반응형
728x90
반응형

18. 정기적으로 실행(cron)

18.1 정기적으로 실행 사용법

cron은 정기적으로 명령을 실행시켜주는 도구, 소프트웨어입니다.

시스템을 운영하다 보면 정기적으로 운영해야 하는 일이 있습니다. 예를 들어 정기적으로 데이터를 백업하거나 정기적으로 데이터를 타인에게 전송하거나 정기적으로 인터넷을 통해 시간을 조정해야하는 일 등이 있죠.

정기적으로 작업을 처리해야 할 때 cron을 사용합니다.

crontab -e 하고자 하는 일을 정의할 수 있습니다.

m h dom mon dow command = 분 | 시 | day of month |  요일  |  사용하고 싶은 명령어

밑에 정기적으로 실행하고자 하는 작업을 밑에 적어 cron을 동작시켜 실행시켜줍니다.



 · ctrl+z : background 화면을 끄지 않고 다른 작업을 진행합니다.

 · date : 시간을 알려주는 명령어입니다.

 · date > date.log : 시간을 date.log파일에 저장하는 명령어입니다.

 · cat date.log : date.log에 저장된 시간을 표시해줍니다.

 · date >> date.log : 실행할 때마다 date.log파일에 추가되는 명령어입니다.

 · fg : 크론으로 돌아갑니다.

 · 1/* * * * * date >> date.log = 1분에 한번 | 시간에 상관없이 | 날짜 | 요일 | 1분에 1번씩 시간을 date.log에 저장해라



위에 명령어 추가 후 ctrl+x -> Y : 크론에서 빠져나옵니다.

 · crontab --help : cron의 도움말로 이동합니다.

 · crontab -l : l은 크론의 list를 보여줍니다.

 · cd ~ : 로그인한 계정의 디렉토리로 이동합니다.

 · ls : 파일 목록을 확인합니다. 

 · tail -f date.log : 파일 뒤쪽에 있는 텍스트를 출력합니다. -f는 date.log를 감시하다 뒤쪽에 텍스트가 추가되면 자동으로                     화면에 새로고침을 합니다.

 · ctrl+c : 크론을 종료합니다.



18.2 정기적으로 실행 예시

크론은 정기적으로 시스템이 처리해야 할 일을 합니다.

웹 개발자로서 서버와 관련한 일을 한다면 크론을 사용할 수 있는데요.

예를 들어 사용자가 입력 양식에 맞게 데이터를 입력하여 10만명에 대해 새로운 글이 등록되었다는 메일을 서버로 전송한다면 서버는 사용자가 전송한 정보를 받습니다. 이 때 메일 하나를 보낼 때 1개당 0.1초가 걸린다면 완료될 대까지 오랜 시간이 소요될 것입니다. 오랜 시간 후 전송 완료 메시지가 뜬다면 좋은 프로그램이 아니겠죠.

좋은 프로그램들은 전송 버튼을 누르고 전송 완료 메시지를 보내고 작업을 끝냅니다. 사용자는 메일을 보내고 다른 작업을 할 수 있게 합니다. 그 후 cron이 saved된 정보를 background에서 10만개의 이메일을 보내는 작업을 진행합니다.


19. 쉘을 시작할 떄 실행

쉘을 시작했을 때 명령어가 자동으로 실행하는 방법에 대해 알아보겠습니다.

startup script : 접속했을 때 쉘(SHELL)에서 특정 명령어가 실행되길 바랄 때 쓰입니다.

 · alias l='ls -al' : l은 ls -al의 해당하는 명령어가 실행됩니다. 파일 목록을 보여주겠죠.

 · alias .. ='cd ..' : ..은 cd ..의 해당하는 명령어가 실행됩니다. 부모 디렉토리로 이동하겠죠.

 · alias c = 'clear' : c는 clear 명령어 역할을 합니다.

 · echo $shell : 쉘은 bash를 사용하고 있습니다.

bash는 사용자가 bash를 처음 실행했을 때 특정 파일을 실행하도록 약속되어 있습니다.

 · cd ~ : 상위 디렉토리로 이동합니다.

 · nano .bashrc : 쉘이 실행될 때 쉘 프로그램인 bashrc파일을 실행하도록 약속되어 있습니다.

    bashrc파일은 bash문법에 맞게 코드가 작성되어 있습니다.

 · echo 'hi bash' -> ctrl+x -> y ->exit -> 로그인하여 재접속을 하면

hi bash라는 메시지가 뜹니다.

bash 명령어를 입력하여도 hi bash메시지가 뜹니다.

.bashrc스크립트에서 코드를 작성하면 자신에게 맞게 커스터마이징 할 수 있습니다.


20. 다중 사용자

20.1 다중 사용자 소개

컴퓨터를 1대를 혼자서 사용하다 보면 여러 명의 컴퓨터를 사용하게 되고

여러 명의 컴퓨터를 사용하다 보면 각자의 비밀이 생기고 권한이 생깁니다.

각자의  아이디로 로그인하여 컴퓨터를 사용할 수 있게 되는데 단점이 있습니다.

다중 사용자 시스템이 되는 순간 시스템의 복잡도는 높아집니다. 권한에 대한 체크가 들어가면서 복잡해집니다.

동시에 여러 사람들이 쓰고 각자의 권한을 갖기에 권한에 대해 잘 모르는 사람이 사용하면 낭패를 보게 됩니다.

예를 들어 파일에 중요한 정보를 저장할 때 누구나 저장할 수 있는 정보로 저장되어 있는 경우입니다.

다중 사용자를 사용법과 문제점을 어느 정도 알고 있어야 합니다.


20.2 id와 who

id : 자신이 누구인지 알 수 있는 방법으로 내가 누군지 식별한다는 의미를 가집니다. 

uid=userid, gid=groupid

who : 현재 시스템에 누가 접속했는지 보여주는 명령어


21. 관리자와 일반 사용자

super(root) user : 강력한 사용자, user : 일반 사용자

root, # : 관리자, $ : 일반 사용자

관리자 계정으로 로그인하여 실수를 하게 되면 개인이 아닌 시스템 서버를 사용하는 모든 사람에게 피해를 줄 수 있으니 조심해야 한다.

이러한 이유로 몇몇 운영체제들은 관리자 계정을 막았다고 합니다.

 · su - root : 관리자 계정으로 로그인하는 명령어입니다.

 · sudo passwd -u root : unlock의 약자로 루트 계정의 권한을 푸는 명령어입니다. 

 · sudo passwd -l root : lock의 약자로 루트 계정의 권한을 막는 명령어입니다.

/root : 루트 사용자로 접속했을 때 /root는 관리자의 디렉토리입니다.

일반 사용자의 경우 홈 디렉토리는  /home/killershin





생활코딩 리눅스 강의

728x90
반응형

'OS > Linux' 카테고리의 다른 글

리눅스 명령어 이해하기8!!  (2) 2017.08.31
리눅스 명령어 이해하기7!!  (0) 2017.08.30
리눅스 명령어 이해하기5!!  (0) 2017.08.28
리눅스 명령어 이해하기4!!  (2) 2017.08.27
리눅스 명령어 이해하기3!!  (0) 2017.08.26
728x90
반응형

+ Recent posts