우분투 16.04를 사용하고 있습니다. 컴퓨터 전원을 끌 때마다 github에 백업하고 싶은 Work라는 디렉토리가 있습니다. 백업 스크립트를 작성했는데 제대로 작동하지만 종료하기 전에는 실행할 수 없습니다. 도와주세요. backup_work.sh의 내용입니다.
cd /home/kaustab/Work
git add .
git commit -m "Daily Backup"
mkdir /home/kaustab/test
git push origin master
echo "Backed up"
read -n 1 -s -r -p "Press any key to continue"
답변1
지침에 따라 종료 시 스크립트를 실행할 수 있습니다.여기.
기본적으로 스크립트를 넣고 /etc/rc6.d/
실행 가능하게 만듭니다. 이 접근 방식의 한 가지 단점은 위 디렉터리의 모든 스크립트가 루트로 실행되어 나중에 파일 권한이 변경되고 문제가 발생할 수 있다는 것입니다. 또 다른 방법은 스크립트를 홈 디렉터리에 보관하고 다음 스크립트를 홈 디렉터리에 추가하는 것입니다./etc/rc6.d
#!/bin/sh
sudo -u kaustab /home/kaustab/backup_work.sh
exit 0
read
마지막으로, 닫기 전에 키를 눌러야 닫히는 것을 방지할 수 있으므로 호출을 제거(또는 시간 초과 추가)해야 합니다 .
체계적 접근
위의 rc6.d 스크립트 방법은 종료 시 스크립트를 실행하는 전통적인 sysv-init 방법입니다. 최신 버전의 Debian/Ubuntu에서는 systemd 단위 파일을 사용하여 종료 시 스크립트를 실행하는 것이 더 안전합니다.
다음 스크립트를 /etc/systemd/system/backup-work.service
(원천) 그리고 실행sudo systemctl daemon-reload
[Unit]
Description=Backup work directory
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
# This works because it is installed in the target and will be
# executed before the target state is entered
# Also consider kexec.target
[Service]
Type=oneshot
User=kaustab
Group=kaustab
ExecStart=/home/kaustab/backup_work.sh # your path and filename
[Install]
WantedBy=halt.target reboot.target shutdown.target
답변2
모든 사람의 도움에 감사드립니다. 하지만 이 문제를 성공적으로 해결했습니다. 내가 한 일은 편집이었다.종료.데스크탑/usr/share/applications에서 exec를 내 스크립트로 변경했습니다. 제가 수정한 내용입니다종료.데스크탑파일은 다음과 같습니다.
[Desktop Entry]
Name=Shutdown
Comment=Backup and power off the computer
GenericName=Shut Down
Exec=gnome-terminal -e /home/kaustab/.scripts/backup_work.sh
Terminal=false
Type=Application
Categories=Utility
Icon=/usr/share/unity/icons/shutdown_highlight.png
NotShowIn=GNOME-Flashback;
X-AppStream-Ignore=true
X-Ubuntu-Gettext-Domain=session-shortcuts
끝날 때백업 작업.shgnome-session-quit --power-off
스크립트 전원 메뉴에 대한 옵션을 제공하기 위해 줄을 추가했습니다 . 감사해요품질 정보 시스템github에 연결하려면 https 대신 ssh를 사용하는 것이 좋습니다. 나중에 이것을 하려고 합니다.