2016-09-25 36 views
-1

我想每次在Ubuntu 16.04上將特定硬盤插入到我的計算機時,都要使用rsync執行備份腳本。 但是我希望提示用戶是否應該運行備份,然後他應該能夠在終端中看到rsync輸出。在硬盤驅動器插入的新終端窗口中執行腳本

我做了什麼至今:

  • 我創建了/etc/udev/rules.d/backup_on_mount.rules

    ACTION=="add", ATTRS{idVendor}=="1058", ATTRS{idProduct}=="0820", RUN+="/path/to/my/script/backup_on_mount.sh" 
    
  • 的規則,我創建了backup_on_mount.sh腳本使其可執行

但是,我沒有成功地彈出一個新的終端窗口與我的腳本runni當我插入我的硬盤驅動器時在它。

有沒有人有關於如何開始的想法?

謝謝

+1

在您的腳本中使用'zenity'。 –

+0

如果在沒有交互式用戶會話存在的情況下插入硬盤驅動器,會發生什麼情況? –

+0

......很清楚,我堅定地站在這是一個糟糕的主意陣營。如果/因爲您的操作系統供應商實施SELinux策略,以防止進程出現他們不應該訪問的內容(並且在正常情況下,連接到),那麼讓您的守護程序知道前臺交互式用戶會話實際上是承擔的,如果不可能在將來中斷一個來自udev衍生的進程的X服務器肯定是一個好的安全策略將會阻止的事情)。 –

回答

0

你不應該直接,長期從udev規則運行任何程序。將長期運行的腳本與udev規則分開的一種方法是通過調度它(例如使用at -M now命令),而不是直接運行它。找到合適的DISPLAY打開新終端的方法取決於您的桌面環境