用 shell脚本写个复制文件到其他服务器得功能,并且根据文件大小决定是否替换
时间: 2023-11-27 13:51:06 浏览: 88
可以使用scp命令来实现在不同服务器间复制文件,结合if语句根据文件大小来判断是否替换。
示例代码如下:
```bash
#!/bin/bash
# 服务器地址
server="user@server_ip:/path/to/destination/"
# 文件路径
file_path="/path/to/source/file.txt"
# 获取文件大小
file_size=$(stat -c %s $file_path)
# 判断文件大小是否大于100MB
if [[ $file_size -gt 104857600 ]]; then
echo "File size is greater than 100MB, replacing file on server..."
scp -r $file_path $server
else
echo "File size is less than or equal to 100MB, skipping file replacement."
fi
```
解释:
1. 定义目标服务器的地址和目录路径。
2. 定义要复制的文件路径。
3. 使用`stat`命令获取文件的大小,并将结果保存在`file_size`变量中。
4. 使用if语句判断文件大小是否大于100MB(100MB = 104857600字节)。
5. 如果文件大小大于100MB,则输出替换文件的提示,并使用scp命令将文件复制到目标服务器。
6. 否则,输出跳过文件替换的提示。
需要注意的是,该脚本需要在目标服务器上设置ssh公钥认证,以便无需输入密码即可进行scp操作。
阅读全文