背景:

  在产品开发中可以使用rsync进行大文件的拷贝,断点续传。

host平台   :Ubuntu 16.04
arm平台   : 3531d
 
rsync     :3.1.3
arm-gcc   :4.9.4

主机准备:

为了方便管理,创建有关的目录

mkdir rsync
cd rsync
mkdir  compressed  install  source

下载并解压有关的源码:

 
cd compressed

#下载包
wget -c https://rsync.samba.org/ftp/rsync/rsync-3.1.3.tar.gz

#解压下载的包
tar -C ../source -xf rsync-3.1.3.tar.gz

编译:

cd ../source/rsync-3.1.3

执行以下脚本

##
#    Copyright By Schips, All Rights Reserved

OUTPUT_PATH=/home/schips/arm/rsync/install
ARM_GCC=arm-hisiv500-linux

CC=${ARM_GCC}- \
--disable-ipv6 --disable-debug --mandir="/tmp/" \
--host=${ARM_GCC} && make && make install

此后,我们会得到一个 rsync 的arm架构的可执行文件

配置rsync:

如果在编译时没有使用“--with-rsyncd-conf”指定配置文件,那么一般都是/etc/rsyncd.conf

编辑 配置文件

vi /etc/rsyncd.conf

根据自己的需要进行修改

uid = apache
gid = users
port =
use chroot = no
#hosts allow = 192.168.9.3
#hosts deny =
pid file = /usr/local/rsync/rsyncd.pid
lock file = /usr/local/rsync/rsync.lock
#log file = /usr/local/rsync/logs/rsyncd.log

[apache]
comment=all web
path=/
read only=no

secrets file=/usr/local/rsync/etc/rsyncd.passwd
auth users=apache

上文红色的这一行是作为密码规则文件。我们可以指定用户密码,例如:

apache:apachepass

设置rsync启动脚本:

由于 rsync 的启动参数比较多,我们这里用一个脚本来代替它。

vi /usr/bin/rsync.sh

#!/bin/bash

#this script for start|stop rsync daemon service
#//

status1=$(ps -ef | egrep "rsync --daemon.*rsyncd.conf" | grep -v 'grep')
pidfile="/usr/local/rsync/rsyncd.pid"
start_rsync="rsync --daemon --config=/etc/rsyncd.conf"

function rsyncstart() {

    if [ "${status1}X" == "X" ];then

        rm -f $pidfile
     mkdir -p /usr/local/rsync/
        ${start_rsync}

        status2=$(ps -ef | egrep "rsync --daemon.*rsyncd.conf" | grep -v 'grep')

        if [  "${status2}X" != "X"  ];then
            echo "rsync service start.......OK"
        fi

    else
        echo "rsync service is running !"
    fi
}

function rsyncstop() {

    if [ "${status1}X" != "X" ];then

         $(cat $pidfile)

        status2=$(ps -ef | egrep "rsync --daemon.*rsyncd.conf" | grep -v 'grep')

        if [ "${statusw2}X" == "X" ];then

            echo "rsync service stop.......OK"
        fi
    else
        echo "rsync service is not running !"

    fi
}

function rsyncstatus() {

    if [ "${status1}X" != "X" ];then
        echo "rsync service is running !"
    else
         echo "rsync service is not running !"
    fi

}

function rsyncrestart() {

    if [ "${status1}X" == "X" ];then

        echo "rsync service is not running..."

        rsyncstart
    else
        rsyncstop
           ;
        do

                echo -n "."
        done
        rsyncstart

        fi
}

 in

        "start")
               rsyncstart
                ;;

        "stop")
               rsyncstop
                ;;

        "status")
               rsyncstatus
               ;;

        "restart")
               rsyncrestart
               ;;

        *)
          echo
                echo  "Usage: $0 start|stop|restart|status"
          echo
esac

设置rsync开机自启动:

注意红色部分的内容是上文的启动脚本所在的位置

#!/bin/bash
rsync=/usr/bin/rsync.sh

function    try_start
{
    count_num=`ps -ef|grep 'rsync --daemon'|grep -v grep|wc -l`
    echo $count_num
    rm -f /usr/local/rsync/rsyncd.pid
     ];then
        ${rsync} start
    fi
}

test -x
case "$1" in

    start)
        echo -n "Starting rsync daemon"
        try_start
        echo "."
        ;;

    stop)
        echo -n "Stopping rsync"
        ${rsync} stop
        echo "."
        ;;

    restart)
        echo -n "Stopping rsync"
        try_stop
        echo "."
        echo -n "Waiting for rsync to die off"
           ;
        do

                echo -n "."
        done
        echo ""
        echo -n "Starting rsync daemon"
        ${rsync} restart
        echo "."
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit
esac

exit 

拷贝对应的文件到指定的位置即可。

参考:

  https://www.cnblogs.com/reblue520/p/10011779.html

arm linux 移植 rsync的更多相关文章

  1. arm linux 移植 x265

    背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...

  2. Linux 安装 go 以及 arm linux 移植 go

    背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...

  3. arm linux 移植 MQTT (paho、mosquitto)

    前言 我们在这里做2件事情: 1)编译 paho.mqtt.mosquitto 2个开源项目的c版本库(mosquitto库没有用上) 2)编译好 依赖 paho.mqtt的库编写例程 + mosqu ...

  4. arm linux 移植 ffmpeg 库 + x264

    背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...

  5. arm linux 移植 PHP

    背景: PHP 是世界上最好的语言. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 php :7.1.30 zlib :1.2.11 libxml ...

  6. arm linux 移植支持 HP打印机

    背景 由于业务需要,需要hi3531d主板上加入对于HP打印机的支持. 通过与产品经理,技术主管的沟通:通用支持是不现实的,只要求彩色打印,先不考虑打印机的价格,只要支持一款打印机即可. 注意: Li ...

  7. arm linux 移植 gdb/gdbserver

    背景 调试工具gdb的使用对于嵌入式Linux开发人员来说是一项不可少的技能. 目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机 ...

  8. arm linux 移植 udhcp 与 使用

    背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...

  9. arm linux 移植 jpeg

    背景: host平台 :Ubuntu 16.04 arm平台 : S5P6818 jpeg :v9c arm-gcc :4.8.1 主机准备: 运行以下脚本: ## # Copyright By Sc ...

随机推荐

  1. Android 短信模块分析(七) MMS数据库定义及结构整理

    一. mmssms.db 数据库mmssms.db中表的定义见表4.1至4.18所示: 表4.1 addr(彩信地址) 字段名 类型 描述 备注 _id INTEGER PRIMARY_KEY 主键I ...

  2. 「Luogu P5368 [PKUSC2018]真实排名」

    PKUSC签到题 题目大意 给出一个长度为 \(N\) 的序列,序列中有 \(K\) 个数会乘二,对于每个数计算在乘二后大于等于这个数的个数与乘二前没有发生变化的方案数. 分析 思路很清晰,可以将答案 ...

  3. 使用 Sandcastle Help File Builder 制作文档

    1.下载安装 Sandcastle 程序. http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=shfb& ...

  4. 「快学springboot」SpringBoot多环境配置文件

    前言 我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml).但是,如果想要把不同的环境(如开发环境,测试环境,生产环境) ...

  5. IDEA下的SVN设置以及TortoiseSVN安装后bin目录下没有svn.exe如何解决?

    1.首先,我们要确保电脑上已经安装了TortoiseSVN. 2.打开IDEA-File-Settings-Version Control-Subversion,在右边的界面上选择TortoiseSv ...

  6. 第1节 Scala基础语法:14、15、list集合练习

    package cn.itcast.collect /** *作业题 */object ListTest { def main(args: Array[String]): Unit = { //创建一 ...

  7. 【PAT甲级】1013 Battle Over Cities (25 分)(并查集,简单联通图)

    题意: 输入三个整数N,M,K(N<=1000,第四个数据1e5<=M<=1e6).有1~N个城市,M条高速公路,K次询问,每次询问输入一个被敌军占领的城市,所有和该城市相连的高速公 ...

  8. Linux 下安装 FFmpeg

    1. 下载源代码: git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg 2. 编译 ./configure --enable-shared --pre ...

  9. luogu P2774 方格取数问题

    有限制的问题,显然考虑全选再根据限制去掉的想法较优,我们发现一个点四周的点受限,其x或者y差一,也就是说奇偶性不同,那我们可以将其分成白点和黑点,就变成了最小割的问题,将每个白点向受限制的黑点连边,c ...

  10. Python 之并发编程之进程中(守护进程(daemon)、锁(Lock)、Semaphore(信号量))

    五:守护进程 正常情况下,主进程默认等待子进程调用结束之后再结束守护进程在主进程所有代码执行完毕之后,自动终止kill -9 进程号 杀死进程.守护进程的语法:进程对象.daemon = True设置 ...