꾸준한 개발일기

리눅스:: 백그라운드에서 명령어 실행하기(nohup) & 비밀번호 입력하는 방법 본문

Programing/리눅스

리눅스:: 백그라운드에서 명령어 실행하기(nohup) & 비밀번호 입력하는 방법

꾸개일 2022. 1. 10. 11:15
반응형

 

데이터베이스 백업 시 용량이 매우 커 시간이 오래 소요된다. 그동안 ssh(터미널)이 끊기거나 다른 프로세스를 실행할 수 도 있는데 이를 대비하기 위해 백그라운드에서 실행해준다.

 

nohup [명령어] &

nohup pg_dump -h xxx.xxx.xxx.xxx -d postgres -Fc -n public --username=postgres > /home/centos/dbbank_postgres_public_220110.dump &

명령어 맨 앞에 nohup을, 맨 뒤에 &를 붙여준다.

 

nohup을 이용해 pg_dump를 실행할 때 문제가 발생한다. 덤프를 뜰 때 비밀번호를 입력해줘야되는데 nohup을 사용하면 비밀번호 입력창이 뜨지 않는다. 이를 해결하기 위해 명령어와 함께 비밀번호를 입력해주는 PGPASSWORD를 사용한다.

 

PGPASSWORD='[비밀번호]'

PGPASSWORD='postgres' nohup pg_dump -h xxx.xxx.xxx.xxx -d postgres -Fc -n public --username=postgres > /home/centos/dbbank_postgres_public_220110.dump &

명령어 가장 맨 앞에 입려해준다.

 

nohup: ignoring input and redirecting stderr to stdout

라는 로그가 뜨는데 무시해도 된다.

 

ps -ef|grep pg_dump

ps 명령어로 프로세스가 잘 동작하는지 확인해준다.

centos   25177 24958 64 09:31 pts/0    00:00:05 pg_dump -h xxx.xxx.xxx.xxx -d postgres -Fc -n public --username=postgres
centos   25186 24958  0 09:31 pts/0    00:00:00 grep --color=auto pg_dump

PID 25177을 보면 정상적으로 작동함을 확인할 수 있다.

 

kill [PID]

프로세스를 강제로 종료하고 싶다면 kill 명령어를 사용한다. 위에 있는 ps 명령어로 PID를 확인한 후 kill 뒤에 입력해준다.

centos   25186 24958  0 09:31 pts/0    00:00:00 grep --color=auto pg_dump

이처럼 뜨면 실행한 프로세스가 종료된 것이다.

 

파일이 잘 받아지고 있다.

반응형
Comments