机器A定时发文件给机器B-FTP实现

Posted wang3680 机会是留给那些有准备的人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器A定时发文件给机器B-FTP实现相关的知识,希望对你有一定的参考价值。

机器A发文件的虚拟机   机器B收文件的虚拟机
机器A:
确认linux安装了ftp包,能启用ftp命令
定时器使用的是crontab
定时器设置步骤:
1.进入root用户
2.service crond stauts 查看 crond运行状态,如果为运行则用命令service crond start启动
3.crontab –e 设置定时计划
写入 0 12 * * * sh /home/oracle/instance/uploadfile.sh (前面总共五列,分别表示分、时、日、月、年)  表示每天12:00执行相对用户目录下的sh脚本
4.service crond restart
现在有以上几个步骤的脚本,执行settask.sh脚本的步骤如下:
1.进入root用户
2. 修改脚本里面的配置  
echo "*/1 * * * * sh /home/oracle/instance/uploadfile.sh">> /var/spool/cron/oracle
该条语句表示每分钟执行/home/oracle/instance/uploadfile.sh该路径下的sh脚本在oracle账户下的定时器
"*/1 * * * * sh /home/oracle/instance/uploadfile.sh"该语句前面的五个*表示执行后面语句的时间,如果需要在每天的12:00,可以写成0 12 * * *,后面的sh表示执行哪个脚本 具体根据uploadfile.sh的存放路劲来修改
/var/spool/cron/oracle 表示把前面定时执行语句写进哪个用户下的crontab定时器中,可以根据具体的情况进行修改,/var/spool/cron/oracle该语句表示oracle用户的定时器。
echo "*/1 * * * * sh /home/oracle/instance/uploadfile.sh">> /var/spool/cron/oracle整个语句的意思是 把“每分钟执行/home/oracle/instance/uploadfile.sh下的脚本”的定时命令写入oralce用户下,oracle用户就会每分钟去执行该目录下的脚本
3.sh settask.sh执行脚本

机器B:
确认linux安装了vsftpd包,能启用vsftpd服务
















uploadfile.sh详解
向服务器传输前一天产生的db文件
#!/bin/bash
# caculate yesterday  time 
yesterday=$(date +%Y%m%d -d "-1 days")
# match file name
filename=${yesterday}*
#ftp
ftp -n<<!
open ip_address       //目标ip地址 
user name password   //用户名密码  比如 user oracle 1234
binary                //传输模式设为二进制
hash                //散列的文件
cd target_path        //上传到服务器文件夹地址
lcd local_path         //本地文件存储地址
prompt              //表示多文件上传
mput $filename       
close
bye
!
# if remove source file
#rm $filename
#echo $filename
一般需要修改 目标地址,输入用户名密码,设置上传地址和本地文件地址就行
如果需要上传之后删除该文件,可以把倒数第二行的注释去掉

如有疑问可以qq问我

 

以上是关于机器A定时发文件给机器B-FTP实现的主要内容,如果未能解决你的问题,请参考以下文章

钉钉机器人自动发消息(定时器自动执行脚本)

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题

利用python itchat给女朋友定时发信息

Node.js实现简单的企业微信群机器人定时提醒功能

python 编写的钉钉机器人自动发消息