shell脚本实现每天三点获取服务器上指定路径文件发送至ftp服务器上
时间: 2023-12-27 22:02:38 浏览: 109
您可以使用Linux系统内置的定时任务工具 `cron` 来实现每天三点执行该脚本。以下是一个示例脚本,可以在每天三点定时获取服务器上指定路径的文件并发送至FTP服务器上:
```bash
#!/bin/bash
# 定义FTP服务器信息
FTP_HOST="ftp.example.com"
FTP_USERNAME="username"
FTP_PASSWORD="password"
FTP_REMOTE_DIR="/remote/dir/"
# 定义本地文件信息
LOCAL_FILE="/path/to/local/file"
REMOTE_FILE="remote_file_name"
# 获取当前时间
NOW=$(date +"%H")
# 判断是否到了指定时间
if [ "$NOW" == "03" ]
then
# 拼接远程文件名
REMOTE_FILE="$(date +'%Y-%m-%d')-$REMOTE_FILE"
# 获取文件
scp user@server:/path/to/source/file "$LOCAL_FILE"
# 上传文件
ftp -n $FTP_HOST <<END_SCRIPT
quote USER $FTP_USERNAME
quote PASS $FTP_PASSWORD
cd $FTP_REMOTE_DIR
binary
put $LOCAL_FILE $REMOTE_FILE
quit
END_SCRIPT
# 删除本地文件
rm -f "$LOCAL_FILE"
fi
```
您需要将其中的FTP服务器信息、本地文件信息和上传文件的方式根据实际情况进行修改。该脚本会在每天三点检查当前时间,如果到了指定时间,则执行获取文件和上传文件的操作。为了使用cron工具,您需要将该脚本保存为一个.sh文件,并使其可执行,然后将其添加到cron的定时任务列表中。
例如,要在每天三点执行该脚本,您可以使用以下命令将其添加到cron定时任务列表中:
```
0 3 * * * /path/to/upload.sh
```
这个命令将在每天三点运行upload.sh脚本。如果您需要更改执行时间或定时任务的其他设置,请查阅cron的相关文档。
阅读全文