백업 스크립트 – systemd 타이머 등록
리눅스 서비스 관련 설정 파일이 담긴 /etc 주요 파일과 디렉토리를 일정 주기로 백업하는 프로세스를 만들어 봄.
백업 스크립트 /usr/local/bin/backup-etc.sh
스크립트 보조 파일 – 디렉토리 포함한 백업 리스트 /root/shell/conf/backup_list.txt
스크립트 보조 파일 – 백업 제외 리스트 /root/shell/conf/backup_exc_list.txt
수행 로그는 /home/user/logs/backup-etc-[날짜].log
에러 로그는 /home/user/logs/backup-etc-error-[날짜].log 로 생성 <- 에러가 없으면(빈 파일) 생성한 로그 지움.~]# ll /usr/local/bin/ 합계 16 -rwx------. 1 root root 7755 8월 6 2025 backup_etc.sh -rwx------. 1 root root 2162 8월 8 2025 check_traffic.sh -rwx------. 1 root root 3712 8월 7 2025 use_ram_php-fpm.sh
스크립트를 systemd 에 등록. 트랜드에 맞게 cron 에 등록하지 않고, systemd service, timer 로 실행 주기 관리하도록 함.
~]# vi /etc/systemd/system/customs-backup-etc.service
[Unit]
Description=Daily /etc Backup Service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup_etc.sh
User=root
Group=root
# 서비스를 실행할 때 작업 디렉토리.
# backup_list, backup_exc_list 참조.
WorkingDirectory=/root/shell/
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
~]# vi /etc/systemd/system/customs-backup-etc.timer
[Unit]
Description=Run daily /etc backup
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
Unit=customs-backup-etc.service
[Install]
WantedBy=timers.target
~]# systemctl daemon-reload
~]# systemctl enable customs-backup-etc.timer
Created symlink from /etc/systemd/system/timers.target.wants/customs-backup-etc.timer to /etc/systemd/system/customs-backup-etc.timer.
~]# systemctl start customs-backup-etc.timer
~]# systemctl status customs-backup-etc.timer
● customs-backup-etc.timer - Run daily /etc backup
Loaded: loaded (/etc/systemd/system/customs-backup-etc.timer; enabled; vendor preset: disabled)
Active: active (waiting) since 수 2025-08-06 11:48:56 KST; 15s ago
8월 06 11:48:56 server.gldigital systemd[1]: Started Run daily /etc backup.
~]# systemctl list-timers customs-backup-etc.timer
NEXT LEFT LAST PASSED UNIT ACTIVATES
목 2025-08-07 03:00:00 KST 15h left n/a n/a customs-backup-etc.timer customs-backup-etc.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.매일 3시 customs-backup-etc.service 에 등록 된 customs-backup-etc.timer 가 /usr/local/bin/backup_etc.sh 스크립트를 수행함.
# 타이머 등록 현황 확인
~]# systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
목 2026-04-23 15:20:00 KST 21min left 목 2026-04-23 14:50:00 KST 8min ago customs-use-ram-pf.timer customs-use-ram-pf.service
금 2026-04-24 03:00:00 KST 12h left 목 2026-04-23 03:00:00 KST 11h ago customs-backup-etc.timer customs-backup-etc.service
금 2026-04-24 07:15:00 KST 16h left 목 2026-04-23 14:49:01 KST 9min ago snap.certbot.renew.timer snap.certbot.renew.service
금 2026-04-24 09:20:14 KST 18h left 목 2026-04-23 09:20:14 KST 5h 38min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
n/a n/a 일 2026-03-15 09:06:35 KST 1 months 8 days ago systemd-readahead-done.timer systemd-readahead-done.service
5 timers listed.
Pass --all to see loaded but inactive timers, too.
# 특정 타이머 등록 현황 확인
~]# systemctl status customs-backup-etc.timer
● customs-backup-etc.timer - Run daily /etc backup
Loaded: loaded (/etc/systemd/system/customs-backup-etc.timer; enabled; vendor preset: disabled)
Active: active (waiting) since 일 2026-03-15 09:04:55 KST; 1 months 8 days ago
3월 15 09:04:55 server.gldigital systemd[1]: Started Run daily /etc backup.


