為何創(chuàng)建此腳本是因為方便項目的布署,不需要手動地去同步不同的項目,而只需要簡單的執(zhí)行shell腳本,輸入項目名就能發(fā)布到服器上。
1、shell文件代碼
#!/bin/sh
read -t 30 -p "請輸入項目名:" name
echo -e "\n"
echo "項目名為:$name"
case $name in
cn)
rsync -r ~/project1 root@192.168.18.2:/project1 --exclude="test.css" --progress
;;
cnb2b)
rsync -r ~/project2 root@192.168.18.2:/web/project2 --exclude="node_modules" --progress
;;
*)
echo "Ignorant"
;;
esac
echo "同步完成"
2、關(guān)鍵字解釋:
name表示要同步的文件名
--exculde="node_modules"表示過濾的文件夾
--progress 顯示文件同步進程
3、文件新建并保存
將文件保存為name.sh
使用. name.sh執(zhí)行文件
4、具體進程;
![](/d/20211017/4916c98d03ef3a5768beb3bb4045cc96.gif)
![](/d/20211017/421a4492ee62dda7d1e837a2cd7b5e3f.gif)
PS:shell腳本備份本地服務(wù)器的文件到遠程服務(wù)器
遍歷本地文件夾下的所有文件名,分別壓縮后ftp傳送到遠程服務(wù)器上保存
1 - 新建 backup.sh,寫入腳本
#!/bin/bash
local_ip=$(ifconfig | grep "inet addr" | grep -v 127.0.0.1 | awk '{print $2}' | awk -F ':' '{print $2}')
backup_dir="/var/web_backup/data"
date=`date +%Y%m%d`
deldate=`date -d -14day +%Y%m%d`
mkdir -p $backup_dir
web_path="/mysite"
web_dir=$(ls -l /mysite/ |awk '/^d/ {print $NF}')
for web_name in $web_dir
do
if [ "$web_name" != "lost+found" ]
then
tar zcvf $backup_dir/$web_name.dump_$date.tar.gz $web_path/$web_name
fi
done
ftp -n!
open 10.XX.XX.XX
user ftpuser ******
binary
hash
cd backups/web/$local_ip/
lcd /var/web_backup/data
prompt
mput *.tar.gz
close
bye
!
rm -rf $backup_dir/*
2 - 修改屬性為可執(zhí)行
3 - crond定時任務(wù),每天晚上00:00:00執(zhí)行一次
0 0 * * * /var/backup.sh > /dev/null 2>1
總結(jié)
以上所述是小編給大家介紹的shell腳本實現(xiàn)本地文件與服務(wù)器文件同步,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Shell腳本實現(xiàn)線上服務(wù)器之間對比文件是否一致
- Shell腳本實現(xiàn)上傳zip壓縮文件到FTP服務(wù)器
- Shell腳本實現(xiàn)復制文件到多臺服務(wù)器的代碼分享