본문 바로가기

리눅스 헛다리/Ubuntu

우분투 systemd 데몬 사용 - sh 파일 실행하기 (여기서는 특정시간에 동작 설정)

728x90

 

 

vi /etc/systemd/system/bakup_sh.service

[Unit]
Description=설명 db를 백업할거야....
After=network.target
Requires=network-online.target

[Service]
Type=oneshot
User=root
WorkingDirectory=/home/backup    
ExecStart=/home/backup/backup.sh      <<<< 실행 sh
StandardOutput=journal
StandardError=journal
RemainAfterExit=true
Environment=PATH=/usr/bin:/usr/sbin:/bin:/sbin    <<<<  sh를 실행하는경우  경로인식을 다를게 할수 있으므로 추가

[Install]
WantedBy=multi-user.target

 

 

vi /etc/systemd/system/bakup_sh.timer

[Unit]
Description=설명 .....

[Timer]
OnCalendar=*-*-* 03:00:00   <<<< 매일 3시에 실행
Persistent=true

[Install]
WantedBy=timers.target

 

 

# systemd 새로고침

sudo systemctl daemon-reload

#시스템 시작시 등록되었는지 확인
systemctl is-enabled [서비스명].service

 

# 타이머 자동 실행 등록

sudo systemctl enable [서비스명].timer

# 타이머 실행

sudo systemctl start [서비스명].timer

------------------------------------------------------------------------------------------

타이머가 실행되고 있는지 확인

sudo systemctl list-timers --all

서비스 실행 로그 확인

journalctl -u [서비스명].service -f

로그 파일 확인

cat /var/log/[서비스명].log

------------------------------------------------------------------------------------------

타이머를 중지

sudo systemctl stop [서비스명].timer

sudo systemctl disable [서비스명].timer

------------------------------------------------------------------------------------------

완전히 삭제

sudo rm /etc/systemd/system/[서비스명].timer

sudo rm /etc/systemd/system/[서비스명].service

sudo systemctl daemon-reload

------------------------------------------------------------------------------------------

타이머파일 설정이 변경되었다면

sudo systemctl daemon-reload

sudo systemctl restart [서비스명].timer - 재시작

728x90