♣ 도움받은 사이트

https://wiki.archlinux.org/title/Systemd/Timers

 

특정 시간에 뭔가를 실행하기 위해 타이머를 설정하는 방법을 다룬다.

 

나같은 경우, 서버의 DB 를 백업하는 용도로 사용하였다.

cron 이나 systemd 를 사용하는 방법이 있는데 요새 추세가 systemd 를 사용하는 듯 하다.

 

/etc/systemd/system 밑에 두개의 파일을 생성하고 아래처럼 작성한다.

(파일명 및 내용은 본인 환경에 맞게 적절히 수정하여 사용한다.)

 

♣ 1. mdb_backup.service

 

$ cd /etc/systemd/system

$ sudo vi mdb_backup.service

[Unit]
Description=Run MariaDB Backup

[Service]
Type=oneshot
ExecStart=/bin/bash /home/hahaite/MDB_Backup/backup.sh

타이머가 발동(?) 되면 /home/hahaite/MDB_Backup 밑에 backup.sh 스크립트를 실행한다.

실행할 프로그램 등을 위 스크립트에 작성하여 실행한다.

 

♣ 2. mdb_backup.timer

 

$ cd /etc/systemd/system

$ sudo vi mdb_backup.timer

[Unit]
Description=MariaDB Backup

[Timer]
OnCalendar=*-*-* 11:00
OnCalendar=*-*-* 13:00
OnCalendar=*-*-* 15:30
OnCalendar=*-*-* 18:00
OnCalendar=*-*-* 20:10
Unit=mdb_backup.service

[Install]
WantedBy=timers.target

매일 5번, mdb_backup.service (위에 작성한 것) 를 실행한다.

(구글링하면 수많은 예제가 있는데 위 코드가 직관적이여서 선호하는 방식이다.)

 

♣ 서비스 등록

Linux 시작 시, 자동 시작되도록 서비스를 등록한다.

$ sudo systemctl enable mdb_backup.timer

 

♣ 바로 타이머 시작

지금 바로 타이머를 시작한다.

$ sudo systemctl start mdb_backup.timer

 

♣ 현재 등록된 타이머 확인

타이머가 정상적으로 등록 및 시작되면 아래 명령어로 확인할 수 있다.

$ sudo systemctl list-timers

 

♣ 타이머 재등록 (re-load)

위 두 파일을 수정한 경우, 아래 명령어로 리로드(Reload) 한다.

$ sudo systemctl daemon-reload

 

 

+ Recent posts