
ãé åžãLinux Systemdç°¡å远å &ã¿ã€ããŒèšå®æ¯æŽã¹ã¯ãªããã®ç޹ä»
ããã«ã¡ã¯Rcatã§ãã
ä»åã¯éå»ã«ä»¥äžã®èšäºã§ç޹ä»ããŸãããLinuxã®systemdãžã®ã¹ã¯ãªãã远å ãã¿ã€ããŒã®è¿œå ãæ¯æŽããã¹ã¯ãªããã玹ä»ããã³ãŒããŒããåå¥ã§äœæããããšã«ããŸããã
ãªãã ããã ã§ããããªãšããã§äœ¿ã£ãŠããã®ã§ãç§ã玹ä»ã§äœ¿ãåãããããã§ãã
ã¯ããã«
å©çšèŠçŽ
æ å ±ãäœåã®æŽ»çšæã¯äºåã«å©çšèŠçŽãã確èªãã ããã
ã³ã¡ã³ãã«ã€ããŠ
å©çšèŠçŽã®ã¬ã€ãã©ã€ã³ã確èªã®äžã³ã¡ã³ãããŠãã ãã
æŠèŠ
æŠèŠ
æ¬ã¹ã¯ãªããã¯Linuxã§ã®ã¹ã¿ãŒãã¢ããããã°ã©ã ãšããããã¿ã¹ã¯ã¹ã±ãžã¥ãŒã«ã®äœçœ®ã¥ãã§ããSystemdã䜿ã£ãŠä»»æã®ããã°ã©ã ãèµ·åæã«å®è¡ããããç¹å®ã®æå»ã«å®è¡ãããããèšå®ãç°¡åã«è¡ãããã®æ¯æŽã¹ã¯ãªããã§ãã
æ¯æŽããŒã«ãå°å ¥ãã
ããã±ãŒãžå 容
ããã±ãŒãžå
容ã¯ä»¥äžã®éãã§ãã
奜ããªãšããã«æ ŒçŽããŠãã ããã
ã³ãã³ããšããŠäœ¿ãããã«ã¯ãšã€ãªã¢ã¹ã®ç»é²ããå¿
èŠããããŸãã
åèã®ããŒã¿ãå
¥ããŠãããŸãã®ã§ãç»é²ããŠãã ããã

ãšã€ãªã¢ã¹ç»é²
ãµã³ãã«ã®ãšã€ãªã¢ã¹ã®äžèº«ã¯ãããªæãã§ãã
alias CreateService-sh='sudo python3 /home/rcat/ããã¥ã¡ã³ã/scripts/CreateService_sh.py'
alias CreateService-py='sudo python3 /home/rcat/ããã¥ã¡ã³ã/scripts/CreateService_py.py'
alias ServiceAdd='sudo /home/rcat/ããã¥ã¡ã³ã/scripts/ServiceAdd.sh'
alias ServiceRemove='sudo /home/rcat/ããã¥ã¡ã³ã/scripts/ServiceRemove.sh'systemctlãæ±ãã®ã«ã«ãŒãæš©éãããã®ã§ããã®ãšãªã¢ã®æ®µéã§sudoãã€ããŠãããŸãã
CreateService_sh
ã·ã§ã«ã¹ã¯ãªããããµãŒãã¹ãšããŠç»é²ããã®ãæ¯æŽããã¹ã¯ãªããã§ããä»åã®ã¡ã€ã³ã³ã³ãã³ãã§ããCreateService_py
ããŒã¿ãšããŠã¯å ¥ã£ãŠããŸãããã¢ããããŒãã¯ããŠããªãã®ã§éæšå¥šã§ããServiceAdd
åºæ¥äžãã£ããµãŒãã¹ãã¡ã€ã«ãsystemdç»é²ããã¹ã¯ãªããã§ããServiceRemove
ç»é²æžã¿ã®ãµãŒãã¹ãåé€ããã¹ã¯ãªããã§ãã
æ¯æŽã¹ã¯ãªããã䜿ã£ãŠãµãŒãã¹ãäœæãã
åææ¡ä»¶
ãŸããæåã«èªåèµ·åãå®çŸããããã«å¿ èŠãªèšå®ãã¡ã€ã«ã§ãããµãŒãã¹ãã¡ã€ã«ãäœããŸãã
åºæ¬çã«ã¯ã·ã§ã«ã¹ã¯ãªãããèµ·åããåæã§è©±ãé²ããŠãããŸãã
ãªã®ã§ãPythonãèµ·åãããã£ãŠãã人ã¯ãPythonãèµ·åããã·ã§ã«ã¹ã¯ãªãããçšæããå¿
èŠããããŸãã
Pythonãèµ·åããã·ã§ã«ã¹ã¯ãªããã¯ãã¡ãã§äœæããŸãããåèã«ããŠãã ããã
åæã¯ãããªæãã§ããããã¯ã¢ããã¢ããªã®èªåèµ·åãšãã¿ã€ããŒèµ·åããã£ãŠãããŸãã
$ ls
config.json create.sh main.py requirements.txt start.sh venvãŸãæåã«ãµãŒãã¹ãäœããŸãã
ãã®äžã§ã®èµ·åã¹ã¯ãªããã¯"start.sh"ãªã®ã§ããã察象ã«ããŸãã
ãŠããããã¡ã€ã«ã®äœæ
ãŸãã¯ã³ãã³ããèµ·åããŸããä»åã¯äœããªãã®ã§1çªãéžæ

次ã«ã¹ã¯ãªããã®ãã¹ãå
¥åããŸãã
ãã®æ"start.sh"ãšããååã«ããŠãããšèªåçã«æ€çŽ¢ãããŸãã
ä»åã¯ãã®ãŸãŸã«ããŠããã®ã§ç©ºæ¬ã§ãšã³ã¿ãŒ

ç¶ããŠåŒæ°ã®å
¥åã§ããç¹ã«åãä»ããªãã®ã§ã空æ¬ã§ãšã³ã¿ãŒã
ãã®åŸããµãŒãã¹åãèãããã®ã§å¿
ãè±æ°åã ãã«å
¥åããŠãã ããã
ååã«å©çšå¯èœãªæåã¯systemdã®ä»æ§ã確èªããããã«ããŠãã ããã

ååã®å
¥åãçµãããšæ¬¡ã¯èµ·åæ¡ä»¶ã§ãã
ãããã¯ãŒã¯ã®ãªã³ã©ã€ã³å€å®ãã§ããŸããä»åã¯ãµãŒããŒãªã®ã§YESã§ãã
次ã«ãã°ã®åºåãèãããŠããŸãããPythonã®æ¹ã§loggingããŠããã®ã§ãæšæºåºåããã¡ã€ã«ã«åºåããå¿
èŠã¯ãããŸãããNOã§ãã

å
šãŠã®å
¥åãçµãããšãµãŒãã¹ãã¡ã€ã«ã®ãã¬ãã¥ãŒã衚瀺ãããŸãã
ãã®å
容ã§åé¡ããªããã°ãYãæŒããŠç¢ºå®ããŸãã

確å®ãããšã¿ã€ããŒãäœæãããã©ããèãããŸãã
宿çãªå®è¡ããããããµãŒãã¹ã®å Žåã¯ãã®ãŸãŸã¿ã€ããŒã®äœæã«ç§»ããŸãããªããããã§äœããªããéžæããŠãã¿ã€ããŒã ãäœæã¯ã§ããŸãã®ã§ãå®å¿ãã ããã

ãããªæãã§ãµãŒãã¹ãã¡ã€ã«ã宿ããŸãã
$ ls
R_AutoBackUP.service config.json create.sh main.py requirements.txt start.sh venväžèº«ã¯ãã¬ãã¥ãŒãšåãã§ãã
ãã现ããç¹ãæžãæãããã ããã°ãç»é²åã«æžãæããŠããŸã£ãŠãã ãããäŸãã°rootã§å®è¡ãããå Žåã¯ãŠãŒã¶ãŒã®è¡ãæ¶ããŠãã ããã

èªåèµ·åãžç»é²
åºæ¥äžãã£ããµãŒãã¹ãã¡ã€ã«ã¯ServiceAddã³ãã³ãã䜿ã£ãŠãµãŒãã¹ã«ç»é²ããããšãã§ããŸãã

ãµãŒãã¹ã«ç»é²ããããèªåèµ·åã®æå¹ååã³ä»ããå®è¡ãªã©ãè¡ããŸãã
â»ã¿ã€ããŒã䜿ãå Žåã¯ããã§ã¯äœãããªãã§ãã ããã
#ãµãŒããŒèµ·åæã«èªåçã«å®è¡ããå Žå
$sudo systemctl enable R_AutoBackUP.service
#ä»ããå®è¡ããå Žåã
$sudo systemctl restart R_AutoBackUP.serviceæ¯æŽã¹ã¯ãªããã䜿ã£ãŠã¿ã€ããŒãäœæãã
次ã«å ã»ã©äœæãããµãŒãã¹ãç¹å®ã®æå»ãæ¥ä»ææ¥ãªã©ã§å®æçã«å®è¡ã§ããã¿ã€ããŒãç»é²ããŠãããŸãã
ãŠããããã¡ã€ã«ã®äœæ
ããäžåºŠãå ã»ã©ã®ã¹ã¯ãªãããèµ·åããŠ2ãéžæããããäžæããŠããªãå Žåã¯ãç¶ããŠã¿ã€ããŒã®äœæãããŠãã ããã

ãŸãæåã«æå»ã®å
¥åã§ãã
æç€ºããããã©ãŒãããéãã«å
¥åããŸãã
ãã®æ¬¡ã«æ¥ä»ãèãããŸãã
æ¥ä»ã¯ç»é²ããŠããŸããšæ1ã«ãªã£ãŠããŸãã®ã§ãåºæ¬çã«ã¯*ããå§ãããŸãã

æ¬¡ã«ææ¥ã®éžæã§ãã
ããã§ã¯åææ¥ã«0ãã6ãŸã§ã®æ°å€ã察å¿ã€ããããŠããããã®æ°å€ãå
¥åãããšãã©ã°ãå転ããŸãã
ãã©ã°ãå転ãããã«ã¯ãæ°å€ãå
¥åããŠãšã³ã¿ãŒã§ãã
äœãå
¥åããã«ãšã³ã¿ãŒãæŒããšå
¥åã確å®ããŸãã

æãæ°Žãéã®å Žå

ææ¥ã®å
¥åãçµãããšç¢ºèªç»é¢ãåºãŸãã
ä»åã¯æ¯æ¥23æã«å®è¡ã§ããã
åé¡ããªããã°YãããŠç¢ºå®ããŸãã

äœæåŸã¯ãããªæãã
$ ls
R_AutoBackUP.service R_AutoBackUP.timer config.json create.sh main.py old requirements.txt start.sh venvèªåèµ·åã®ç»é²
åºæ¥äžãã£ããŠããããã¡ã€ã«ãServiceAddã䜿ãç»é²ããŸãã

ã¿ã€ããŒã§èµ·åããå Žåã¯ã¿ã€ããŒã®æ¹ãæå¹åããŸãã
$ sudo systemctl enable R_AutoBackUP.timer
Created symlink /etc/systemd/system/timers.target.wants/R_AutoBackUP.timer â /etc/systemd/system/R_AutoBackUP.timer.
$ sudo systemctl start R_AutoBackUP.timerã¹ããŒã¿ã¹ã確èªãããšãããªæãã«ãªã£ãŠããã°OKã§ãã
äžã®æ®µããµãŒãã¹ã®å®è¡ç¶æ
ãã¿ã€ããŒãªã®ã§æ¢ãŸã£ãŠããã¯ãã§ãã
äžãã¿ã€ããŒã®çšŒåç¶æ³ãã¿ã€ããŒãåŸ
ã¡ã«ãªã£ãŠããã¯ããªã®ã§ãç·ã«ãªã£ãŠããã¯ãã§ãã

ããã§å®äºã§ãã
ããšã¯æå»ãæ¥ãæã«æ¬åœã«åããŠããã確èªããŠã¿ãŸãããã
ãµãŒãã¹ãåé€ãã
ServiceRemoveã䜿ã£ãŠç°¡åã«åé€ã§ããŸãã
ã¿ã€ããŒãã»ããããå Žåã¯ãå
ã«ã¿ã€ããŒãåé€ããŠãããµãŒãã¹ãåé€ããŠãã ããã
$ ServiceRemove R_AutoBackUP.timer
R_AutoBackUP.timer
File OK
Removed /etc/systemd/system/timers.target.wants/R_AutoBackUP.timer.
$ ServiceRemove R_AutoBackUP.service
R_AutoBackUP.service
File OK
Removed /etc/systemd/system/network-online.target.wants/R_AutoBackUP.service.
Removed /etc/systemd/system/multi-user.target.wants/R_AutoBackUP.service.ãŸãšã
ä»åã¯Systemdã®ç°¡å远å ã¹ã¯ãªããã玹ä»ããŸããã
ãŠããããã¡ã€ã«ã®äœæã¯ä»ã®ããã°ã©ã ãã䜿ãåããŠãããã§ãããããåæ°ãå€ããªãã®ã§çç¥ããŠããèšè¿°ããã£ãå Žåãå
¥åãå¿ããæãããããŸãã
ãã®ãããä»åã®ãããªæ¯æŽããŒã«ã䜿ãããšã§ãæ¯ååãå質ã§äœãããšãã§ããŸãã
ã¿ã€ããŒãã€ããããšã¯ããã«å°ãªããšæãã®ã§ã䜿ãåãã«ããŠãããã©ãããã£ãããªïŒã¿ãããªæãã«ãªããšæããŸãã
远å ãåé€ã®æ¹ãããããªã«é »ç¹ã«ããããã§ã¯ãªãã§ãããäžèº«ãèŠãã°ããããŸãããç¹å®ã®ãã£ã¬ã¯ããªã«ããŒã¿ãã³ããŒããããæå¹åããããšæ¯ååãããšãããããããã§ããã
ãšããããã§ãã®èŸºãŸãã£ãšãŸãšããŠæ¯æŽããŒã«ãšããæãã«ããŠããæãã«åããŠã¿ãŸããã
ã圹ã«ç«ãŠã°å¹žãã§ãã
é åžæ å ±
é åžURL
以äžã®URLããé
åžããŠããŸãã
å©çšèŠçŽã«åæã®äžãå©çšãã ããã