SFTP 傳輸腳本的變數

SFTP 傳輸腳本的變數

我正在嘗試執行以下操作:

  • 匯出資料庫(也許將其製作為 .tgz,這很簡單)
  • 將整棵樹打包成 .tgz
  • 將這兩個檔案複製到不同伺服器上的指定目錄中。

使用我目前擁有的當前腳本(bash)執行所有這些操作。但當我尋求自動化時,我需要更多的自動化。

此刻我

  • 用今天的日期建立目錄
  • mysqldump 將資料庫轉儲到名稱包含該日期的檔案中
  • 建立目錄樹的 .tgz,名稱再次包含今天的日期
  • 透過 sftp 連接到伺服器(或 scp,沒關係......它是 Windows (s)ftp(s) 伺服器)
  • 將(目前靜態)檔案上傳到(目前靜態)目錄
  • 退出 sftp 伺服器並顯示上傳狀態。

在連接到 sftp 伺服器之前是否將兩個檔案名稱轉換為變量,以便我可以說“put $filename1”等?

答案1

對於任何 POSIX shell(包括bash),您可以使用以下命令

# Today's date
today=$(date +'%Y-%m-%d')

# Create directory
mkdir "$today"

# Dump SQL backup
mysqldump … > "$today/sqlbackup.$today.sql"

# Make a tarball
tar cf "$today.tgz" "$today"

# Transfer file
scp -p "$today.tgz" remoteHost:

# Get a status report from the immediately preceding command
echo "Status is $? (0=good)"

相關內容