종료하기 전에 작업 디렉터리를 git에 백업하세요.

종료하기 전에 작업 디렉터리를 git에 백업하세요.

우분투 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를 사용하는 것이 좋습니다. 나중에 이것을 하려고 합니다.

관련 정보