
我正在嘗試執行以下操作:
- 匯出資料庫(也許將其製作為 .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)"