机器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实现多个定时任务多机器部署问题