萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 在Linux系統中簡單地實現定時備份的方法

在Linux系統中簡單地實現定時備份的方法

   運行一個簡單的腳本

  假設你有一個腳本叫:/usr/local/bin/myscript ,你想要每隔一小時就運行一次。

  Service 文件

  第一步,創建一個service文件,根據你Linux的發行版本放到相應的系統目錄(在Arch中,這個目錄是/etc/systemd/system/ 或 /usr/lib/systemd/system)

  myscript.service

  代碼如下:

  [Unit]

  Description=MyScript

  [Service]

  Type=simple

  ExecStart=/usr/local/bin/myscript

  注意,務必將Type變量的值設置為"simple"而不是"oneshot"。使用"oneshot"使得腳本只在第一次運行,之後系統會認為你不想再次運行它,從而關掉我們接下去創建的定時器(Timer)。

  Timer 文件

  第二步,創建一個timer文件,把它放在第一步中service文件放置的目錄。

  myscript.timer

  代碼如下:

  [Unit]

  Description=Runs myscript every hour

  [Timer]

  # 首次運行要在啟動後10分鐘後

  OnBootSec=10min

  # 每次運行間隔時間

  OnUnitActiveSec=1h

  Unit=myscript.service

  [Install]

  WantedBy=multi-user.target

  授權 / 運行

  授權並運行的是timer文件,而不是service文件。

  代碼如下:

  # 以 root 身份啟動定時器

  systemctl start myscript.timer

  # 在系統引導起來後就啟用該定時器

  systemctl enable myscript.timer

  在同一個Timer上運行多個腳本

  現在我們假設你在相同時間想要運行多個腳本。這種情況,你需要在上面的文件中做適當的修改。

  Service 文件

  創建你的service文件來運行你的腳本,但是在每個service 文件最後都要包含下面的內容:

  代碼如下:

  [Install]

  WantedBy=mytimer.target

  如果在你的service 文件中有一些依賴順序,確保你使用Description字段中的值具體指定After=something.service和Before=whatever.service中的參數。

  另外的一種選擇是(或許更加簡單),創建一個包裝腳本來使用正確的順序來運行命令,並在你的service文件中使用這個腳本。

  Timer 文件

  你只需要一個timer文件,創建mytimer.timer,像我在上面指出的。

  target 文件

  你可以創建一個以上所有的腳本依賴的target文件。

  mytimer.target

  代碼如下:

  [Unit]

  Description=Mytimer

  # Lots more stuff could go here, but it's situational.

  # Look at systemd.unit man page.

  授權 / 啟動

  你需要將所有的service文件和timer文件授權。

  代碼如下:

  systemctl enable script1.service

  systemctl enable script2.service

  ...

  systemctl enable mytimer.timer

  systemctl start mytimer.service

  Good luck.

copyright © 萬盛學電腦網 all rights reserved