Gnu-Parallel
gnu parallel - 對等待的遠端伺服器加速命令
我正在使用 gnu parallel 為 pantheon.io 上大約 1500 個網站生成備份,使用它們的終端 CLI。該
terminus backup:create
命令在收到遠端端已完成的響應之前不會完成。我想知道是否有任何方法可以通過並行來更好地加快速度,以便在等待以前的站點完成時可以備份更多站點,或者如果沒有,則可以更全面地執行。如果它有任何區別,這是從 Jenkins CI 作業執行的。謝謝你。#!/bin/bash +x backup_sites() { BACKUP=$(terminus backup:create "$*".live) echo "$*": "$BACKUP" } SITE_LIST=$(terminus site:list --field=name) export -f backup_sites echo "$SITE_LIST" | parallel backup_sites
不指定並行執行的作業數量將使其預設為 CPU 數量。
從手冊:
-j
每台機器上的工作槽數。最多並行執行 N 個作業。0 表示盡可能多。預設值為 100%,這將在每台機器上的每個 CPU 上執行一個作業。
一般來說,這是一個安全的選擇,但你在等待網路,而不是計算。因此,您可以輕鬆增加數量。我會嘗試 -j 200。它應該工作得很好。您可以調整此參數以獲得所需的速度。
所以
echo "$SITE_LIST" | parallel -j 200 backup_sites
而不是echo "$SITE_LIST" | parallel backup_sites