当前位置: 首页 > article >正文

rsync中远端文件的校验和存储缓存的黑科技

在rsync的快检中(quick_check_ok)中,在比较了文件大小和文件修改时间后,如果是使能了校验和(--checksum)是还需要比较本地和远端文件的校验和的。通常处理方法下,需要信号到远端服务器/客户端计算当地的文件校验和并传输到近端来进行两版本文件校验和的比较。参考如下代码:

	if (INFO_GTE(PROGRESS, 1))
		end_progress(total_size);

	sum_end(file_sum1);

	if (do_fsync && fd != -1 && fsync(fd) != 0) {
		rsyserr(FERROR, errno, "fsync failed on %s", full_fname(fname));
		exit_cleanup(RERR_FILEIO);
	}

	if (mapbuf)
		unmap_file(mapbuf);

	read_buf(f_in, sender_file_sum, xfer_sum_len);
	if (DEBUG_GTE(DELTASUM, 2))
		rprintf(FINFO,"got file_sum\n");
	if (fd != -1 && memcmp(file_sum1, sender_file_sum, xfer_sum_len) != 0)
		return 0;
	return 1;
i

http://www.kler.cn/a/465111.html

相关文章:

  • 后端java开发路由接口并部署服务器(四)
  • YIG带通滤波器
  • 如何轻松关闭 iPhone 上的 HEIC [HEIC 图像技巧]
  • JavaVue-Get请求 数组参数(qs格式化前端数据)
  • 25.1.3
  • docker使用国内镜像
  • Docker--Docker Image(镜像)
  • Visual Point Cloud Forecasting enables Scalable Autonomous Driving——点云论文阅读(12)
  • STM32的LED点亮教程:使用HAL库与Proteus仿真
  • RT-Thread中堆和栈怎么跟单片机内存相联系
  • XIAO Esp32S3 播放网络Mp3
  • ELK日志收集系统部署
  • C与语言GDB调试
  • ubuntu 常见问题(持续记录)
  • BLDC无感控制的驱动逻辑
  • [网络安全]数据安全领域关键技术总结
  • 深入刨析数据结构之排序(上)
  • 【GPT】Coze使用开放平台接口-【8】创建应用
  • 多模态论文笔记——CogVLM和CogVLM2
  • Java基于SpringBoot的甘肃非物质文化网站的设计与实现,附源码
  • 您的公司需要小型语言模型
  • Tailwind CSS 实战:表单设计与验证实现
  • Eclipse中引入NS3项目
  • Linux系统编程——线程控制
  • UML之泛化、特化和继承
  • 通用优化软件GAMS的数学建模和优化分析