写一个脚本将某个目录下的所有文件压缩传输到另一个服务器的目录下,并生成javaapp加当天日期的压缩文件,传输完成后将本地压缩文件删除
时间: 2024-09-29 12:09:30 浏览: 29
为了完成这样的任务,你可以编写一个bash shell脚本来实现。以下是一个简单的例子,假设你的源目录是`/src_dir`,目标服务器地址是`remote_server`,远程目标目录是`/remote_target_dir`,并且你想在当前目录下生成一个名为`javapp_YYYYMMDD.tar.gz`的压缩文件:
```bash
#!/bin/bash
# 检查日期格式
if [[ ! "$1" =~ ^[0-9]{8}$ ]]; then
echo "请输入正确的日期格式(YYYYMMDD),例如: '20230101'"
exit 1
fi
# 定义变量
SRC_DIR="/src_dir"
REMOTE_DIR="/remote_target_dir"
FILE_NAME="javapp_$1.tar.gz"
# 获取当天日期
DATE=$1
# 创建压缩文件
tar czf $FILE_NAME $SRC_DIR
echo "压缩文件已创建: $FILE_NAME"
# 使用scp将文件传输到远程服务器
SCP_CMD="scp $FILE_NAME $remote_server:$REMOTE_DIR/$DATE-$FILE_NAME"
echo "开始传输..."
$SCP_CMD
if [ $? -eq 0 ]; then
echo "文件传输成功!"
else
echo "文件传输失败!"
fi
# 删除本地压缩文件
rm $FILE_NAME
echo "本地压缩文件已删除."
# 结束脚本
exit 0
```
要在脚本中运行,首先确保你有`scp`命令的权限(默认在大多数Linux发行版中已经安装),然后提供当天的日期作为参数:
```bash
./script.sh 20230101
```
请注意,实际部署时可能需要根据服务器环境(如用户名、密码或SSH密钥对)修改`SCP_CMD`行的内容。
阅读全文