如何為 Grive2 啟用使用者的 systemd 計時器和服務?

如何為 Grive2 啟用使用者的 systemd 計時器和服務?

我已經安裝了Grive2 控制台用戶端對於 Google 雲端硬碟,請執行下列步驟:

sudo add-apt-repository ppa:nilarimogard/webupd8  
sudo apt-get update  
sudo apt-get install grive 

然後我創建了用於同步的資料夾並登入我的 Google 帳戶:

mkdir ~/GoogleDrive
cd GoogleDrive
grive -a

然後我重新啟動系統,但找不到任何服務grive
所以我嘗試調查包安裝的文件列表grive

$ dpkg -L grive
/.
/usr
/usr/lib
/usr/lib/grive
/usr/lib/grive/grive-sync.sh
/usr/lib/systemd
/usr/lib/systemd/user
/usr/lib/systemd/user/[email protected]
/usr/lib/systemd/user/[email protected]
/usr/lib/systemd/user/[email protected]
/usr/bin
/usr/bin/grive
/usr/share
/usr/share/doc
/usr/share/doc/grive
/usr/share/doc/grive/changelog.Debian.gz
/usr/share/doc/grive/copyright
/usr/share/man
/usr/share/man/man1

以下有 3 個有趣的systemd相關項目:

$ dpkg -L grive | grep systemd/user/
/usr/lib/systemd/user/[email protected]
/usr/lib/systemd/user/[email protected]
/usr/lib/systemd/user/[email protected]

它們的內容如下:

$ cat /usr/lib/systemd/user/[email protected]
[Unit]
Description=Google drive sync (changed files)

[Service]
ExecStart=/usr/lib/grive/grive-sync.sh listen "%i"
Type=simple
Restart=always
RestartSec=30

[Install]
WantedBy=default.target

$ cat /usr/lib/systemd/user/[email protected]
[Unit]
Description=Google drive sync 
After=network-online.target

[Service]
ExecStart=/usr/lib/grive/grive-sync.sh sync "%i"

$ cat /usr/lib/systemd/user/[email protected]
[Unit]
Description=Google drive sync (fixed intervals)

[Timer]
OnCalendar=*:0/5
OnBootSec=3min
OnUnitActiveSec=5min
Unit=grive-timer@%i.service

[Install]
WantedBy=timers.target

所以看起來grive具有自動同步的內部功能。
並且沒有必要發明另一輛帶有cron調度程序的自行車。

但我不熟悉systemd使用者的定時器和服務。

成立ArchLinux 上的論壇帖子,但無法理解如何將其與 grive 檔案結合。

我該怎麼做才能啟用grive服務和計時器?

答案1

你的問題給了我正確的提示來查看 grive2 附帶的 systemd 用戶計時器/服務。

直到最近,您的問題的答案才添加到 README.md 中grive2 github 儲存庫。看一下關於基於 systemd 的同步的自述文件部分。本質上你打電話:

# 'google-drive' is the name of your Google Drive folder in your $HOME directory
systemctl --user enable grive-timer@$(systemd-escape google-drive).timer
systemctl --user start grive-timer@$(systemd-escape google-drive).timer
systemctl --user enable grive-changes@$(systemd-escape google-drive).service
systemctl --user start grive-changes@$(systemd-escape google-drive).service

問候

RA

相關內容