Linux su명령을 이용해서 다른 사용자 권한으로 프로그램 실행하기

linux Linux

Linux에서 Oracle이나 PostgresSQL의 명령들을 root 사용자로 실행하는 것은 $ORACLE_HOME, $PGDATA 등의 환경 변수를 준비해야 하며 또한 root 사용자로 실행해서 생성된 파일들은 owner가 root이기 때문에 oracle 또는 postgres 사용자가 액세스 할 수 없습니다. root 사용자로 실행하는 Shell 프로그램에서 다른 사용자의 명령을 사용하고자 한다면 su 명령을 사용하는 것이 좋습니다. 이 글에서는 su 명령으로 postgresql의 명령을 실행하는 Shell 프로그램 작성 방법을 소개합니다.

작업 환경

이 글은 다음 환경에서 작업했습니다.

# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

su 명령 형식

다른 사용자로 명령을 실행하는 형식은 다음과 같습니다.

su – 사용자 -c “명령”

따라하기

다음 글의 내용을 Shell Script로 만들어 root 사용자의 crontab에 등록해서 매일 AM1:00에 PosrtgreSQL 데이터베이스의 전체 백업을 받도록 하겠습니다.

PostgreSQL 데이터베이스 클러스터 전체를 백업하기(pg_basebackup)
PostgreSQL데이터베이스 클러스터 전체를 백업하는 방법을 소개합니다. 작업 환경 이 글은 다음과 같은 환경에서 확인했습니다. OS버전에 따라 화면 내용과 액세스 경로가 다를 수 있습니다. 꼭 확인 바랍니다. 참...

위의 글 내용을 Shell Script로 만든 다음 소스를 파일명 cron_backuppg_test.sh 로 저장합니다.

코드 상세 설명

18행 pg_basebackup은 postgres 유저 권한으로 실행하도록 su – 사용자 -c “명령” 형식을 사용하여 실행합니다.

cron 스케줄 등록

cron_backuppg_test.sh를 다음과 같이 crontab에 등록합니다.

# crontab -e
0  6  *  *  * sh /root/cron_backuppg_test.sh

User에 로그인 후, crontab을 등록하는 방법에 대해서는 다음 글을 참조하십시오

Linux 로그인 User의 스케줄러(cron)에 등록하기
이 글에서는 관리자 권한을 가진 root User에 로그인 해서 crontab -e 명령을 사용하여 로그인 User가 소유한 Task(Job) 스케줄러(cron)에 Task(Job)을 등록하는 방법을 소개합니다. 또...
제목과 URL을 복사했습니다