移植NTP时间同步工具到arm linux平台创建定时任务

2023-11-03

下载源码

wget -c http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p14.tar.gz

解压并编译

在这里插入图片描述

./configure --prefix=$PWD/install --exec-prefix=$PWD/install --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc --with-yielding-select=yes
make
make install

一个脚本进行编译

#!/bin/sh
HOST=arm-none-linux-gnueabi
BUILD_HOST=/home/aron566/opt/arm-2014.05/bin/arm-none-linux-gnueabi-
ARM_GCC=${BUILD_HOST}gcc
ARM_CPP=${BUILD_HOST}g++
BASE=`pwd`
OUTPUT_PATH=${BASE}/install

make_dirs () {
    #为了方便管理,创建有关的目录
    cd ${BASE} && mkdir compressed install source -p
}

download_package () {
    cd ${BASE}/compressed
    #下载包
	wget -c http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p14.tar.gz
}

tar_package () {
    cd ${BASE}/compressed
    ls * > /tmp/list.txt
    for TAR in `cat /tmp/list.txt`
    do
        tar -xf $TAR -C ../source
    done
    rm -rf /tmp/list.txt
}

make_ntp () {
  cd ${BASE}/source/ntp-4.2.8p14
	./configure --prefix=$OUTPUT_PATH/ntp-4.2.8p14 --exec-prefix=$OUTPUT_PATH/ntp-4.2.8p14 --host=$HOST CC=$ARM_GCC --with-yielding-select=yes
	make
	make install
}

make_dirs
download_package
tar_package
make_ntp
exit $?

上传文件至开发板

install 目录下 bin目录下执行件

复制到开发板的/usr/bin目录下

运行

同步时间命令

ntpdate time.buptnet.edu.cn

使用date查看时间

date命令查看之后显示的是UTC时间(世界标准时间),比北京时间(CST=UTC+8)相差8个小时,所以需要设置时区

设置时区

ubuntu系统目录/usr/share/zoneinfo/Asia中的文件Shanghai拷贝到开发板目录/etc中并且改名为localtime之后,用命令reboot重启即可

显示UTC时间可以使用命令

date -u

从网络上获取到的系统时间写入硬件时钟中

hwclock -w

创建开机启动项

S92crontab加入到/etc/init.d目录中,添加可执行权限

#!/bin/sh
#无需修改
DIRECTORY_NAME=/etc/crontabs
#无需修改
CONFIG_NAME=$DIRECTORY_NAME/root
#运行时配置,无需修改
RUN_DIRECTORY_NAME=/var/spool/cron/crontabs
RUN_CONFIG_NAME=$RUN_DIRECTORY_NAME/root

#定时任务
TASK_1="*/1 */1 */1 */1 */1 ntpdate time.buptnet.edu.cn"
TASK_2="*/1 */1 */1 */1 */1 hwclock -w"
start() {
	#是否存在定时任务配置目录
	if [ ! -d "${DIRECTORY_NAME}" ];then
		mkdir $DIRECTORY_NAME -p
		touch $CONFIG_NAME
		chmod 777 $CONFIG_NAME
		echo $TASK_1>>$CONFIG_NAME
		echo $TASK_2>>$CONFIG_NAME
	fi
	mkdir -p $RUN_DIRECTORY_NAME
	cp -p $CONFIG_NAME $RUN_CONFIG_NAME
	chmod 777 $RUN_CONFIG_NAME
	crond
	[ $? = 0 ] && echo "START Crontabs OK" || echo "START Crontabs FAIL"
}
stop() {
	echo "STOP Crontabs"
}
restart() {
	stop
	start
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart|reload)
	restart
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit $?

注意在windows上编写的文件可能需要执行以下命令

dos2unix S92crontab #消除断元符

ntp服务器

1、保证做ntp服务器的开发板和ntp客户端的系统的网络连接正常

2、在要做服务器的开发板上编辑文件/etc/ntp.conf
执行命令:

vi  /etc/ntp.conf 
#restrict default nomodify notrap noquery 
restrict 127.0.0.1 
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 
server  127.127.1.0        # local clock 
fudge   127.127.1.0  stratum 5 
driftfile /var/lib/ntp/drift 
broadcastdelay   0.008 
keys                     /etc/ntp/keys

3、然后开启ntp服务器

ntpd  -c /etc/ntp.conf

4、ntp服务器开启后五到十几分钟才能在客户端系统中执行以下命令,否则时间同步会失败

ntpdate  192.168.1.48  #192.168.1.48修改成你的服务器的IP地址
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移植NTP时间同步工具到arm linux平台创建定时任务 的相关文章

  • JavaWeb学习-02(response和request)

    JavaWeb学习 02 response和request 一 request对象 1 HttpServletRequest是ServletRequest的子接口 request对象用于接收客户端传递过来的请求内容 通过该对象的各种方法来获
  • weak_ptr 智能指针的使用

    目录 一 weak ptr 变量的定义 二 expired 成员函数 三 lock 成员函数 四 use count 成员函数 五 为什么要用 weak ptr 一 weak ptr 变量的定义 weak ptr 对象的构造有3种方法 1
  • 软件测试面试面对HR提出的问题,怎么回答才不会被面试官“套路”

    面试中 如何回答HR提出的问题很大程度上决定了面试能不能成功 下面是软件测试人员在面试过程中经常被问到的10个问题 告诉你怎么回答才不会被面试官套路 请你做一个自我介绍 误区 一般人回答这个问题过于平常 只说姓名 年龄 爱好 工作经验 这些
  • 深度学习中的优化算法之NAG

    之前在https blog csdn net fengbingchun article details 124648766 介绍过Momentum SGD 这里介绍下深度学习的另一种优化算法NAG NAG Nesterov Accelera
  • 【航模】凤凰模拟器安装

    固定翼飞手3 1 航模入门教程 凤凰模拟器的安装与初始设置 航模模拟器详细教程 到群里下载凤凰模拟器 并按照视频进行安装 群里的文件安装方式相比自己CSDN里面介绍的安装方式更省力 DirectX它能够自己进行安装 自己的天地飞6遥控器是右
  • 八、RSTP

    STP协议虽然能够解决环路问题 但是收敛速度慢 影响了用户通信质量 如果STP网络的拓扑结构频繁变化 网络也会频繁失去连通性 从而导致用户通信频繁中断 IEEE于2001年发布的802 1w标准定义了快速生成树协议RSTP Rapid Sp
  • spring硬骨头-----解决循环依赖问题

    目录 what spring中是如何解决循环依赖问题的 整体思路 spring中初始化时设置属性值的方法 set和构造的区别 那么三级缓存是怎么处理的呢 实现细节 总结 1 三级缓存解决循环依赖问题的关键是什么 为什么提前暴露对象能够解决
  • SpringBoot整合shiro-spring-boot-web-starter启动报错

    最近在做一个SpringBoot整合常用框架的系统 在整合Shiro时启动就报错 现将解决办法总结如下 SpringBoot使用的是最新的2 3 4版本 Shiro使用的是shiro spring boot web starter1 6 0
  • Python 数组操作指南:使用示例和方法解析

    什么是 Python 数组 数组是一种基本数据结构 也是大多数编程语言的重要组成部分 在 Python 中 它们是能够同时存储多个项目的容器 具体来说 它们是元素的有序集合 每个值都具有相同的数据类型 这是关于 Python 数组需要记住的
  • 11. 微积分 - 偏导数&方向导数

    文章目录 偏导数 方向导数 方向余弦 投影 继续讲方向导数 Hi 大家好 我是茶桁 我们上节课学习了链式法则 本节课 我们要学习 偏导数 和 方向导数 偏导数 偏导数在导论课里面也提到过 偏导数针对多元函数去讲的 多元函数是什么 我们拿个例
  • springboot 获取 property参数

    public class TankyxApiMemberApplication extends SpringBootServletInitializer public static void main String args Configu

随机推荐

  • 排列组合(递推矩阵)

    排列与组合有什么区别 排列与元素的顺序有关 组合与顺序无关 如何递推出对应的排列组合呢 组合 通过上面的组合公式可以得到下面的数据表格 n m 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 2
  • 单链表的基本操作c++

    头节点 第一个节点 一般不储存数据 头指针 指向第一个节点 首元节点 第一个储存数据的节点 可以通过头节点或头指针指向整个链表 链表的初始化 前插法 前插法 node initlink node p node malloc sizeof n
  • JavaSE 01

    JAVASE 学习1 作为初学者 主要在此记录学习过程中的点滴 以供参考和后期回顾 1 Java是一个全面且功能强大的语言 可用于多种用途 Java有三个版本 Java标准版 Java Standard Edition Java SE 可以
  • 手把手教你用VS2019搭建Linux开发环境

    因为linux的界面还是不如Windows友好 但是linux系统下可以看见一些更底层的东西 今天 我来教你用vs2019搭建linux项目 第一步 打开vs的安装器 看下面标注的组件是否安装 第二步 开启linux ssh服务 ubunt
  • Android Studio连接夜神模拟器

    Android Studio连接夜神模拟器 一 下载夜神模拟器 二 夜神模拟器连接Android Studio 三 其他操作 3 1 屏幕旋转 3 2 创建其他模拟器 一 下载夜神模拟器 官网 https www yeshen com 下载
  • TCP如何保证可靠传输

    TCP如何保证可靠传输 TCP保证可靠传输的方式有 校验和 序列号 确认应答 超时重传 连接管路 流量控制 拥塞控制等 1 校验和 在数据传输过程中 吧传输的数据当作一个16位整数 吧所有的数据加起来 最前面的进位补到最后一位 然后取反得到
  • 钱币兑换问题(dp背包)

    钱币兑换问题 在一个国家仅有1分 2分 3分硬币 将钱N兑换成硬币有很多种兑法 请你编程序计算出共有多少种兑法 Input 每行只有一个正整数N N小于32768 Output 对应每个输入 输出兑换方法数 Sample Input 293
  • 观察者模式(推模型+拉模型)

    观察者模式 Observer Pattern 当一个对象被修改时 会自动通知它的依赖对象 现在我们是新闻社 要向所有新闻订阅者推送新闻 那么该如何实现呢 经过思考我们不难发现一家新闻社一般对应的是多个新闻订阅者 那么我们先从新闻社开始入手
  • 同步和异步的区别及优缺点 通俗理解

    一 同步和异步的区别 程序里面的同步和异步和我们现实生活理解不太一样 一般我们对同步的理解是同时做很多事情 但程序中的同步是按照任务的顺序执行任务 前一个任务没有执行结束 下一个任务不会执行 要等待上一个任务执行结束 通俗举例 我大学有个室
  • 服务器同时读写多个文件,多服务器文件读写

    多服务器文件读写 内容精选 换一换 表1列出了弹性文件服务的常用功能 在使用弹性文件服务之前 建议您先通过常用概念介绍了解NFS CIFS等基本概念 以便更好地理解弹性文件服务提供的功能 表示该类型的文件系统支持该功能 表示该类型的文件系统
  • angular项目从部署到启动

    angular是前端三大框架之一 适合开发大型需要多人合作的项目 代码规范 社区活跃 不过学习曲线陡峭 这篇介绍环境搭建 完成就可以启动ng项目了 一 Node js和npm 在node官网 https nodejs org zh cn d
  • Java实战之城市多音字处理

    Java实战之城市多音字处理 一 需求 对城市名称转化为拼音的时候 当遇到多音字城市的时候 转化拼音就不是我们想要的了 使用 pinyin4j 无法直接解决这个问题 网上有很多维护多音字信息的 觉得麻烦 如 长沙 gt zhangsha 厦
  • Massif:堆分析器

    简介 Massif是一个堆分析器 它度量程序使用了多少堆内存 这包括有用的空间 以及分配给簿记和对齐目的的额外字节 它还可以测量程序堆栈的大小 尽管默认情况下它不这样做 堆分析可以帮助您减少程序使用的内存量 在具有虚拟内存的现代机器上 这提
  • 人工智能如何理解开悟?

    马斯克为啥牛逼你知道吗 为啥现能成世界首富 你们知不知道 最近这一个月全世界最火的连比尔盖茨都说了 这个是比当年人类发明互联网更加震撼人心的 就是马斯克有一家公司发明了一个聊天机器人 叫track GDP 这个track GDP有多厉害呢
  • 现在的jdk keytool无法获取到jks的MD5怎么办?

    一 使用其他版本的JDK 可获取MD5的版本 https ask dcloud net cn article 38778 二 使用openssl 获取 命令如下 keytool exportcert keystore xxx keystor
  • qt 5.12.1 下载安装详细教程

    前言 Qt是一个跨平台的C 图形界面应用程序框架 它提供给开发者建立图形用户界面所需的功能 广泛用于开发GUI程序 也可用于开发非GUI程序 Qt很容易扩展 并且允许真正地组件编程 基本上 Qt同X Window上的Motif Openwi
  • 几种字符串补“0”(或其它字符)的方式

    几种字符串补 0 或其它字符 的方式 好记性不如烂笔头 先记下 呵呵 方式一 这个最多程序员用的 也是最普通的方式 int a 656 string b a if b length lt 6 for int i 0 i lt 6 b len
  • 参数在信号-槽参数用值传递还是引用传递

    结论 以下表格总结了我们的结果 例如第一行 如果程序传递信号的参数为引用到槽 那么在直接连接则不发生复制 在队列连接则发生一次复制 Signal Slot Direct Queued const Copy const Copy 0 1 co
  • Matlab找出矩阵每一行的最大值及其位置

    dis max arr 2 dis array zeros M N for i 1 size dis hang max dis i 1 c find edtImage i hang max dis array i c 1 end figur
  • 移植NTP时间同步工具到arm linux平台创建定时任务

    移植NTP时间同步工具到arm linux平台创建定时任务 下载源码 解压并编译 一个脚本进行编译 上传文件至开发板 运行 创建开机启动项 注意在windows上编写的文件可能需要执行以下命令 ntp服务器 下载源码 wget c http