shell脚本实现本地⽂件与服务器⽂件同步
为何创建此脚本是因为⽅便项⽬的布署,不需要⼿动地去同步不同的项⽬,⽽只需要简单的执⾏shell脚本,输⼊项⽬名就能发布到服器上。
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、关键字解释:
name表⽰要同步的⽂件名
--exculde="node_modules"表⽰过滤的⽂件夹
-
-progress 显⽰⽂件同步进程
3、⽂件新建并保存
  将⽂件保存为name.sh
  使⽤. name.sh执⾏⽂件
4、具体进程;
PS:shell脚本备份本地服务器的⽂件到远程服务器
遍历本地⽂件夹下的所有⽂件名,分别压缩后ftp传送到远程服务器上保存
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"
shell创建文件并写入内容
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_$ $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 *.
close
bye
!
rm -rf $backup_dir/*
2 - 修改属性为可执⾏
chmod 755 backup.sh
3 - crond定时任务,每天晚上00:00:00执⾏⼀次
0 0 * * * /var/backup.sh > /dev/null 2>&1
总结
以上所述是⼩编给⼤家介绍的shell脚本实现本地⽂件与服务器⽂件同步,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。