跨服务器获取文件shell,shell脚本实现本地文件与服务器文件同步

本文介绍了一种通过Shell脚本实现自动化项目部署和本地服务器文件备份到远程服务器的方法。脚本读取用户输入的项目名,根据项目名同步相应的文件,并排除特定文件夹。同时,脚本会遍历本地文件夹,压缩并上传到远程服务器进行备份,确保数据安全。此外,还展示了如何设置定时任务以每天执行备份操作。
摘要由CSDN通过智能技术生成

为何创建此脚本是因为方便项目的布署,不需要手动地去同步不同的项目,而只需要简单的执行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、具体进程;

ad5e52db4f42bac2ac11f4ceaf2e6667.png

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"

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 - 修改属性为可执行chmod 755 backup.sh

3 - crond定时任务,每天晚上00:00:00执行一次0 0 * * * /var/backup.sh > /dev/null 2>&1

01903f2303fd0ac74e96dd767b78fe22.png

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值