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;
}

ftp 客户端 上传的更多相关文章

  1. FTP客户端上传下载Demo实现

    1.第一次感觉MS也有这么难用的MFC类: 2.CFtpFileFind类只能实例化一个,多个实例同时查找会出错(因此下载时不能递归),采用队列存储目录再依次下载: 3.本程序支持文件夹嵌套上传下载: ...

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

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

  3. Java实现FTP文件上传与下载

    实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方式 package com.cl ...

  4. ftp无法上传问题

    1.背景 ftp服务端和客户端一直未做任何改动,无法上传属于突发状态,除此客户端外其他客户端上传正常 客户端(SunOS系统)可以正常连接ftp的xxx21端口,但是传输数据(文件)时无法正常传输 上 ...

  5. Python 基于Python实现Ftp文件上传,下载

    基于Python实现Ftp文件上传,下载   by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...

  6. HCNA管理设置文件系统FTP服务上传下载文件

    1.拓扑图 2.R2配置 The device is running! ###################################### <Huawei>sys Enter s ...

  7. ftp服务器上传下载共享文件

    1 windows下搭建ftp服务器 https://blog.csdn.net/qq_34610293/article/details/79210539 搭建好之后浏览器输入 ftp://ip就可以 ...

  8. FTP文件上传

    一.配置FTP文件服务器 以Ubuntu为例 FTP两种模式简介 PORT(主动模式) 第一步FTP客户端首先随机选择一个大于1024的端口p1,并通过此端口发送请求连接到FTP服务器的21号端口建立 ...

  9. 使用ftp软件上传下载php文件时换行丢失bug

    正 文:   在使用ftp软件上传下载php源文件时,我们偶尔会发现在本地windows下notepad++编辑器写好的php文件,在使用ftp上传到linux服务器后,php文件的换行符全部丢失了, ...

随机推荐

  1. 一:VSCode引入jupyter

    1:安装 2:示例代码 #%% import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np x , , ) ...

  2. zabbix导入数据库报错1046 (3D000) : No database selected

    Zabbix导入数据库时报错 使用如下命令导入Zabbix数据库时报错 zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u ...

  3. TOMACT 各个版本集合

    http://archive.apache.org/dist/tomcat/ 再点击 bin 目录,找到想下载的即可

  4. Luogu P1098 字符串的展开

    这几天划了划水看了看初赛的试题,没写什么随笔. 今天刷刷洛谷试炼场.(不要问为什么我还在普及区) 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串 ...

  5. [Neo4j]Conda虚拟环境中安装python-igraph

    neo4j算法需要用到python-igraph包,但试过很多方法,都失败了 pip install python-igraph 安装失败, 提示C core of igraph 没有安装. 在con ...

  6. 爬虫之selenium爬取京东商品信息

    import json import time from selenium import webdriver """ 发送请求 1.1生成driver对象 2.1窗口最大 ...

  7. CSPS模拟 42

    T3数位$dp$还没改完啊 哭了 T1 对$DAG$里所有点求他能到达的点的数量 考试时算了$bitset$内存扛不住,yy了个线段树合并上去 没有A不是因为被卡了,而是数组又开小了.. 我以为不能卡 ...

  8. ie浏览器兼容性的入门解决方案

    IE浏览器的兼容性素来是令人头疼的问题,大名鼎鼎的FUCK-IE不是浪得虚名的. 这里使用的解决方案是HACK,具体原理就是针对不同的浏览器写不同的HTML.CSS样式,从而使各种浏览器达到一致的渲染 ...

  9. 分类算法之逻辑回归(Logistic Regression

    分类算法之逻辑回归(Logistic Regression) 1.二分类问题 现在有一家医院,想要对病人的病情进行分析,其中有一项就是关于良性\恶性肿瘤的判断,现在有一批数据集是关于肿瘤大小的,任务就 ...

  10. 创建python的虚拟环境

    为什么需要虚拟环境?如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0 ...