ps:

1.使用netkit-ftp-0.17交叉编译出来的ftp客户端,

2.然后写上传代码,调用ftp传服务器;

3.最好使用bin二进制文件形式传输;

4.ftp客户端和Ubuntu自带的ftp工具其实是同一个,只是需要切换下编译器重新编译个arm平台的;

5.代码把关键的上传部分写好了,可以参考下;

#include "stdio.h"
#include <time.h>
#include <dirent.h>
#include "ctype.h"
#include <errno.h>
#include <unistd.h>
#include "log_struct.h"
#include <linux/rtc.h>
#include <fcntl.h>
#include <sys/ioctl.h>

int logtar(char *tar_path,char *filename)
{
char mbackupcmd[LOG_LEN]={0};
char timeinfo[LOG_LEN]={0};
int pos=0;

//char dirname[256];//获取当前目录并打印

chdir(Log_Local_Root);   //必须用这个切换路径,system不能用cd切换
//getcwd(dirname,256);
//printf("The current directory is : %s \n",dirname);

getcurrenttimeforfilename(timeinfo);
pos=0;
sprintf(filename,"dilog%s.tar",timeinfo);
sprintf(mbackupcmd+pos,"busybox tar -cf %s%s LOG zdi_log",tar_path,filename);
system(mbackupcmd);

return 0;
}

int logsaveremote(int argc, char *argv[])
{
FILE *fp;
int i,pos;
char filename[100],file_path[100];;
char rmcmd[LOG_LEN]={0};

logtar("/media/mtdblock3/",filename);

sprintf(file_path,"/media/mtdblock3/%s",filename);
if(access(file_path, F_OK) != 0)
{
printf("log autobackup tar err \n ");
return 2;
}

if((fp=popen("ftp -n","w"))==NULL)
{
printf("Run ftp fail !");
return 3;
}
//while ((fgets(str,255,fp))!=NULL) puts(str);
fprintf(fp,"open %s\n",argv[3]);
fprintf(fp,"user %s %s\n",argv[4],argv[5]);
fprintf(fp,"prompt\n");
fprintf(fp,"lcd /media/mtdblock3\n");
fprintf(fp,"cd /\n");
fprintf(fp,"binary /\n");     //二进制格式传输,否则打包的压缩包上传之后无法打开
fprintf(fp,"put *%s\n",filename);

fprintf(fp,"bye\n");

pclose(fp);

sprintf(rmcmd,"rm /media/mtdblock3/%s",filename);
system(rmcmd);

printf("%s backup to ftp server success \n",filename);
return 0;
}

转载于:https://www.cnblogs.com/xiaoyudian/p/9171950.html

ftp 客户端 上传相关推荐

  1. Ftp客户端上传、下载操作示例

    Ftp客户端操作示例. package ftp.service;import org.apache.commons.net.ftp.FTPClient; import org.apache.commo ...

  2. Android FTP 客户端 上传/下载 带进度条实战源码

    Android FTP 开发,我个人是使用commons-net-3.1.jar,别问我为什么是度娘教我的,附上commons-net-3.1.jar的开源下载地址http://grepcode.co ...

  3. [No0000DB]C# FtpClientHelper Ftp客户端上传下载重命名 类封装

    using System; using System.Diagnostics; using System.IO; using System.Text; using Shared;namespace H ...

  4. [网站搭建] 阿里云虚拟主机搭建及FTP文件上传

    写这篇文章主要有两个原因:一方面是得到了阿里云的一个"开通码",另一方面是最近给学生们上网站制作的课程,想把学生们提交的作业上传到服务器上去,让他们体会一下自己做的东西,提升他们的 ...

  5. linux禁止客户端上传文件_Linux下Shell脚本实现FTP自动上传和下载文件

    概述 之前测试写的一个脚本,主要是为了实现FTP自动上传和下载文件.大家可以参考下: 基础环境配置 [root@pxzxdm01 ~]# useradd -d /home/ftp1 ftp1 [roo ...

  6. ftp 追加远程文件_ftp上传,完成ftp定时上传、下载只需3步

    FTP[File Transfer Protocol]中文译为文件传输协议,是Internet上的另一项主要服务,这项服务让使用者能通过Internet来传输各式各样的文件.FTP上传是与WEB上传相 ...

  7. php vsftpd文件上传类,php ftp文件上传函数(基础版)

    php ftp文件上传函数(基础版) 复制代码 代码如下: // 定义变量 $local_file = 'local.zip'; $server_file = 'server.zip'; // 连接F ...

  8. linux 关闭开机 ftp,解决linux ftp匿名上传、下载开机自启问题

    如果在平时学习,工作中经常使用 ftp 服务器 ,可以设置成开机自启,在设置之前要先了解几个关于自启的命令: 1.chkconfig 命令 主要作用:用于检查,设置系统的各种服务.其中有几个重要参数, ...

  9. uniapp 定时执行_ftp上传,完成ftp定时上传、下载只需3步

    FTP[File Transfer Protocol]中文译为文件传输协议,是Internet上的另一项主要服务,这项服务让使用者能通过Internet来传输各式各样的文件.FTP上传是与WEB上传相 ...

最新文章

  1. 手机中的计算摄影:多摄融合
  2. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
  3. 猿辅导、作业帮忙“圈钱”,跟谁学、有道、51Talk狂“烧钱”,在线教育钱途在哪?
  4. iTerm2 使用笔记
  5. yocto-sumo源码解析(十一): recvfds
  6. Tomcat提示Null component
  7. MySQL在其版本迭代后Online DDL功能发生了哪些变化?
  8. 每行代码都有注释释的java面向对象代码_每行代码都有注释释的java面向对象代码...
  9. Intellij IDEA 识别不了@Slf4j和log的问题
  10. 【转】Caffe初试(八)Blob,Layer和Net以及对应配置文件的编写
  11. 【Codeforces Round #299 (Div. 2) C】 Tavas and Karafs
  12. Vmware虚拟机全屏
  13. 健康医药企业营销数字化心法100条
  14. S7-200SMART PLC通过RS485接口与西门子SMART LINE系列触摸屏通信具体步骤
  15. lumion鸟瞰图---制作心得
  16. 机械臂技术参数的意义
  17. Pytorch构建Transformer实现英文翻译
  18. 输入年月日实现计算这是一年的第几天
  19. Docker Compose方式安装GitLab
  20. JOHNSON TROTTER 的全排列算法

热门文章

  1. [Angularjs]ng-show和ng-hide
  2. python系列------计算机运算过程
  3. windows server 2008的安装以及主机IP配置实验
  4. php文件上传的经验分享
  5. 组策略部署软件----将部署的软件分类
  6. Keras下载的数据集以及预训练模型保存在哪里
  7. 邪恶的三位一体:机器学习、黑暗网络和网络犯罪
  8. [入门向选讲] 插头DP:从零概念到入门 (例题:HDU1693 COGS1283 BZOJ2310 BZOJ2331)
  9. oracle删除日志文件
  10. 【uva10829-求形如UVU的串的个数】后缀数组+rmq or 直接for水过