리눅스에서 일정 주기별로 반복된 일을 하는 방법은 무엇일까요? 예를 들어, 하루마다 투데이를 초기화 한다던지. 이럴 때 쓸 수 있는 것이 crontab입니다. 대략적인 옵션들을 보면 크게 어려운 것은 없슶니다. -l은 current crontab을 출력합니다. -e는 적용되어 있는 crontab을 editor를 이용해서 편집할 수 있게 해 줍니다. cron.py입니다. output.log에 계속 서버의 현재 날짜와 시간을 표시해 줍니다. crontab -e를 입력하시면 크론탭을 편집할 수 있는 에디터가 하나 나오는데요. 요래 입력하면, 매 분마다 python3 cron.py를 실행시키겠다는 의미입니다. 공백으로 구분된 이 5개의 필드들은 이 사이트를 보면 손쉽게 작성할 수 있으니 참고하면 좋겠습니다. 매..
OS/리눅스 검색 결과
이번 시간에는 리눅스 which 명령어를 알아보겠습니다. which는 command의 위치를 알려줍니다. 예를 들어 java라던지, ls와 같은 것들의 명령어 위치를 알려줍니다. 제 서버에는 java가 설치되어 있지 않습니다. 그렇기 때문에 처음에 which java를 입력하면 아무 것도 나오지 않습니다. java를 설치하고 나서, 다시 which java를 입력해 보겠습니다. 그러면, /usr/bin/java에 설치되었다고 나옵니다. ls로 상세 정보를 보면, 링크 파일임을 알 수 있습니다. 이들을 통해서 따라 들어가 봅시다. 먼저, java가 /etc/alternatives/java의 링크임을 알 수 있어요. /etc/alternatives로 들어가 봅시다. 그러면 java가 있을 텐데요. java가..
쉘 프로그래밍을 하다가 수 연산을 해야 될 때가 있었습니다. 이럴 때 어떻게 해야 할까요? bash 메뉴얼 문서를 보면, $(( expression )), (( compound 방법을 소개하고 있습니다. 이에 따르면 expression은 $a+$b가 됩니다. a는 3이므로, $a는 3으로 대치됩니다. 그리고, $b는 4로 대치됩니다. 즉, 우리는 3 + 4가 (( 안에 있기 때문에, 3 + 4를 산술 연산으로 평가하게 됩니다.3 + 4는 유효한 산술 표현식이므로 결과적으로 7이 리턴됩니다. 결과를 출력해 보니, 정말 그러하네요. 그러면 이건 어떨까요? 3+4라는 expression이 있습니다. ((로 감싸져 있으므로, 3+4가 산술 연산식으로 평가됩니다. 따라서, c는 3+4의 산술 연산 결과값인 7이 ..
입력을 받아야 하는 문제는 꽤 많이 보입니다. shell에서는 read를 쓸 수 있는데요. 어떻게 해야 하는지 간단하게 알아봅시다. 먼저, read a는 1줄을 읽어서, 변수 a에 저장합니다. echo $a는, a에 저장된 값을 출력하는 것인데요. 이 쉘 프로그램은, 한 줄을 입력받아서 a에 저장한 뒤에, a의 값을 출력하는 것입니다. 실행해 보겠습니다. 저는 2 4 6 8을 입력했습니다. 입력한 값이 2 4 6 8이였으므로, 출력은 2 4 6 8이 됩니다. 그런데, 공백을 기준으로 받아야 할 경우도 있습니다. 이 때에는 문서에 나온 IFS를 이용하면 됩니다. 한 마디로 spliter의 역할을 한다고 보시면 됩니다. result를 split 하는데, IFS를 " "로 주면, 공백 문자를 기준으로 spli..
우분투에서 /etc/localtime에는, 서버의 타임존에 대한 정보가 들어 있습니다. 보니까, Asia/Seoul로 설정되어 있는데요. 이는, 서버의 타임존이 Seoul이라는 의미입니다. 그러면, 이러한 정보들은 어디에 어떻게 저장되는 것일까요? /usr/share/zoneinfo 폴더로 들어가 보겠습니다. 먼저, zoneinfo 폴더 내에 있는 Asia/Seoul로 들어가 보겠습니다. 그러면 뭔가 알 수 없는 정보들이 나오고, KST-9가 나옵니다. 이는 한국 표준시를 의미합니다. 도쿄에 대한 정보를 보니, 이번에는 JST-9라고 되어 있습니다. 이것만 봐서는 어느 표준시를 따르는지밖에 모르겠네요. zdump 명령어는 timezone 파일에 대해서 상세 정보를 출력해 주는 명령어입니다. 사실, 사람이..
최근댓글