- [Linux] 생활코딩 리눅스 : 파일 찾기(locate, find), 백그라운드 실행(ctrl+z, jobs, fg), 항상 실행(daemon, service), 정기적 실행(cron)2024년 04월 15일 10시 41분 20초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
1. locate
✔️ 출처 : https://www.opentutorials.org/course/2598/14212
1.1. 설치
locate 패키지보다 mlocate 패키지가 updatedb 작업이 빠르기 때문에 mlocate를 설치한다.
root@(생략):/# sudo apt-get -y install mlocate
😉 Mac OS의 경우 설치가 필요 없다.
1.2. updatedb
locate 명령어는 실제 파일을 찾는 것이 아니라 파일 목록 데이터베이스(mlocate)에서 찾는다. 따라서 빠른 검색 속도를 제공하지만 최신의 정보가 아닐 수 있다(udatedb 작업은 크론에 등록되어 있어 매일 새벽에 자동으로 실행됨). 아래 명령어를 이용해 mlocate.db에 파일 정보를 저장한다. mlocate의 경우 설치 시 최초로 db를 생성하기 때문에 설치 직후 아래 명령어를 실행할 필요는 없다.
root@(생략):/# sudo updatedb
1.3. 파일 검색 예시
아래 명령어는 파일 검색 예시이다.
root@(생략):/# locate *.log
2. find
find는 파일 목록 데이터베이스에서 파일을 찾는 것이 아니라 직접 찾기 때문에 속도가-상대적으로-느리지만 항상 최신의 검색이 가능하다.
아래 명령어는 모든 디렉터리를 검색하여 확장자가 log인 모든 파일을 검색한다.
root@(생략):/# find / -name *.log
3. whereis와 $PATH
$PATH라는 환경 변수에 존재하는 실행 파일(명령어)의 위치를 찾는 명령어이다. 아래 명령어는 위(1.1)에서 설치한 locate의 위치를 찾는 예제이다.
root@(생략):/# whereis locate
4. 백그라운드 실행
✔️ 출처 : https://www.opentutorials.org/course/2598/14216
4.1. ctrl+z
실행 중인 프로세스를 백그라운드로 보낸다.
nano에서는 ctrl+t+z를 입력해야 한다(그림 1 참조).
4.2. jobs
jobs 명령어를 통해 백그라운드에서 실행 중인 프로세스를 확인할 수 있다.
root@(생략):/# jobs [1]+ Stopped nano bgtest
4.3. fg
백그라운드에서 실행 중인 프로세스를 포그라운드로 변경한다.
root@(생략):/# fg root@(생략):/# fg %1 # jobs에서 출력된 프로세스 정보에서 []안에 있는 숫자를 % 다음에 입력하여 원하는 프로세스를 선택할 수 있다.
4.4. kill
백그라운드에서 실행 중인 프로세스를 제거할 때 사용한다.
root@ltk-SP7-2104P:/leo# kill -9 %1 [1]+ Stopped nano bgtest
4.5. &
앞서 살펴본 내용들이 실행 중인 프로세스를 백그라운드로 보내는 명령에 관한 것이었다면, &는 실행하려고 하는 명령을 백그라운드에서 실행하도록 하는 명령이다.
root@(생략):/# ls -R / > result.txt 2> error.log & # ls -R 명령에 의한 결과를 result.txt 파일로 출력하고, 그 과정에서 에러가 발생(2>)하면 error.log 파일로 출력한다. 이 과정이 백그라운드에서 이루어진다. [1] 1775197 root@(생략):/# jobs [1]+ Running ls --color=auto -R / > result.txt 2> error.log &
5. 항상 실행
✔️ 출처 : https://www.opentutorials.org/course/2598/14217
5.1. daemon 디렉터리
항상 실행하는 daemon이 위치한 디렉터리는 /etc/init.d/이다. 아래는 해당 디렉터리로 이동하는 명령이다.
root@(생략):/# cd /etc/init.d/
5.2. service
service는 daemon을 실행하는 명령어이다.
root@(생략):/etc/init.d# sudo apt-get install apache2 # 실습을 위한 아파치 설치 root@(생략):/etc/init.d# sudo service apache2 start # 아파치 실행 root@(생략):/etc/init.d# ps aux | grep apache2 # 아파치가 설치되었는지 확인 root@(생략):/etc/init.d# sudo service apache2 stop # 아파치 실행 종료
5.3. 재부팅 시 daemon 실행이 유지되도록 하는 방법
etc에 있는 디렉터리 중 rc3.d는 리눅스가 CLI 부팅의 경우 설정하는 곳이고, rc5.d는 GUI 방식 부팅의 경우 설정하는 곳이다. 아래는 ll 명령어로 출력한 rc3.d 디렉터리의 내용의 일부이다.
root@(생략):/etc/rc3.d# ll total 16 drwxr-xr-x 2 root root 4096 3월 15 17:25 ./ drwxr-xr-x 138 root root 12288 4월 20 06:30 ../ lrwxrwxrwx 1 root root 27 9월 22 2022 K01speech-dispatcher -> ../init.d/speech-dispatcher* lrwxrwxrwx 1 root root 15 9월 22 2022 S01acpid -> ../init.d/acpid* (생략)
K01speech-dispatcher에서 K는 재부팅 시 자동 실행하지 않는다는 의미이며, 01은 우선순위를 나타낸다. S01acpid의 경우 S는 재부팅 시 자동 실행됨을 의미한다.
6. 정기적으로 실행(cron)
✔️ 출처 : https://www.opentutorials.org/course/2598/14218
6.1. cron
정기적으로 처리해야하는 작업을 설정한다.
root@(생략):/# cron -e # 크론 편집 # 편집기에서 아래 예제 추가 */1 * * * * date >> date.log 2>&1 # 1분마다 날짜 정보를 date.log 파일에 추가(>>) 저장. 에러 출력(2)은 표준 출력(1)으로 리다이렉션(&)하여 저장(>)
😉 크론에 대한 더 자세한 내용은 링크 참고 : https://postforty.tistory.com/400
6.2. tail
root@(생략):/# tail -f date.log # date.log 파일에 추가되는 로그를 모니터링
728x90반응형'CS > Linux' 카테고리의 다른 글
생활코딩 리눅스 : rsync(백업할 때 유용) (0) 2024.05.28 [Linux] 생활코딩 리눅스 : 인터넷, 네트워크 그리고 서버(IP 확인 방법), 웹 서버, ssh (0) 2024.05.20 [Linux] nohup을 이용한 jar 무중단 배포 및 log 확인 방법 (0) 2024.04.08 [Linux] 생활코딩 리눅스 : 다운로드, 파이프, IO Redirection, shell & kernal, shell script (0) 2024.04.03 [Linux] 생활코딩 리눅스 : 패키지 매니저 (0) 2024.04.02 다음글이 없습니다.이전글이 없습니다.댓글