Sync命令
在用reboot命令启动unix系统后,系统提示出错信息,部分应用程序不能正常工作。经仔细检查系统文件,并和初始的正确备份进行比较,发现某些文件确实被破坏了,翻来覆去找不到文件遭破坏的原因,最后想到了写缓存命令——sync,在reboot前没有运行sync命令,导致了系统文件的改变而不能正常工作。  www.2cto.com  
sync命令的作用是,将有关文件系统的存储器常驻信息送入物理介质内。在暂停系统之前,比如要重新启动机器,一定要去执行sync命令。unix系统运行经验表明,为确保可靠起见,应执行两遍sync命令,这是因为sync命令完成时,并不保证信息实际写到了磁盘上,虽然已经执行了一遍这个命令。在执行sync命令以后,要等待磁盘工作灯灭了(假定有系统工作指示灯的话),再去真正暂停机器的运行或启动机器。
unix系统遭受破坏是随时都可能发生的事情,因此在启动机器或关机之前一定要运行sync命令。记住在任何情况下,慎重地执行sync命令决不会有任何坏处  www.2cto.com  
umount时间过长,sync命令的使用
有一个问题,比如 cp 一个文件到SD卡上,是不是首先先将这个文件写到SDRAM上,然后umount的时候再将SDRAM中的内容真正写SD卡上? 我umount的时候会过多一会才出现终端的提示符,根据写入文件的大小确定 umount的时间?  
后来查了一下资料,Linux文件系统更新是一个复杂的过程,当用户程序对文件系统进行修改以后,例如进行了写操作,文件数据把修改记录在内核缓冲中,在数据没有写到磁盘的时候,依然能够执行用户进程,所有数据的改变都在inode的内容中得到反映。磁盘的数据更新实际上是异步进行的,很有可能在写操作已经完成很长时间以后才真正对磁盘的数据进行更新。

sync命令强制把磁盘缓冲的所有数据写入磁盘,如果在没有把磁盘缓冲区的信息写入磁盘之前终止系统,则磁盘的文件系统就会处在一个不稳定的状态。而在正常模式下即使没有对分区进行umount的操作,在重启之前系统会调用sync命令强制把磁盘缓冲的所有数据写入磁盘,而在急救模式下必须对所挂的分区进行umount的操作,系统才会调用sync命令强制把磁盘缓冲的所有数据写入磁盘,请在急救模式下的朋友注意这个问题。其实“reboot -n(Don’t sync before reboot or halt)”在重启之前不用sync命令强制把磁盘缓冲的所有数据写入磁盘,就很能说明问题。  www.2cto.com

所以要 cp 完之后要执行 sync 命令将缓冲区的内容写到磁盘中,然后再umount 就不会出现延时了.
经验证,采用此方法,延迟写入问题可以解决

转载于:https://www.cnblogs.com/zhouhbing/p/3909408.html

Linux sync命令的作用分析相关推荐

  1. linux sync命令,Linux中sync命令起什么作用呢?

    摘要: 下文讲述Linux中sync的功能说明,如下所示: sync命令功能: 用于强制将改变的内容立刻写入磁盘 注意事项: 用户通常不用运行sync命令,系统会自动运行 update或bdflush ...

  2. linux帐户管理命令和文件分析

     linux帐户管理命令 1.创建用户 新的用户可以使用useradd命令创建 2.创建组 增加一个新用户组可以使用 groupadd命令. 格式: groupadd  选项  用户组 常用的选项: ...

  3. linux cat命令的作用,Linux中cat命令的作用有哪些

    本期微子网络将为您带来Linux中的cat命令的功能.文章内容丰富,从专业角度分析叙述.看完这篇文章,希望你能有所收获. cat命令的目的是连接文件或标准输入并打印它们.此命令通常用于显示文件内容,或 ...

  4. Linux source 命令的作用

    我查阅资料的时候发现英文最普遍的解释是: In Linux systems, source is a built-in shell command that reads and executes th ...

  5. Linux TOP命令查询结果分析

    top命令通常都是用来查看当前系统情况的命令:具体参数可以 top - 去查看 第一行主要是介绍当前系统运行了54天 当前5个登录用户 load average表示系统平均负载(在特定时间间隔内运行队 ...

  6. linux cat命令的作用,Linux命令cat使用详解

    cat命令功能: cat命令主要用来实现查看文件.创建文件.及合并.追加文件内容等功能. cat命令主要参数: -n 或 –number:对输出文档的行数进行编号,从1开始. -b 或 –number ...

  7. java linux ping ip,java linux ping命令

    java linux ping命令 [2021-02-03 14:27:06]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&qu ...

  8. linux 安全审计功能,Linux安全审计命令

    安全审计 数据分析 capinfos xxx.pcap 产看数据包基本信息 日志分析 who /var/log/wtmp #查看登录用户信息 哈希校验 sha265 文件名 md5sum 文件名 &g ...

  9. Linux下编译cscope,Linux cscope命令

    一.简介 Cscope 是一款开源免费的 C/C++浏览工具,自带一个基于文本的用户界面,通过cscope可以很方便地找到某个函数或变量的定义位置.被调用的位置等信息.Cscope对 C /C++支持 ...

最新文章

  1. chrome拦截弹窗问题的两种解决方式
  2. mysql无法创建存储过程问题 ERROR 1307 (HY000)
  3. windows编程一日一练(2)
  4. 阿里P8大佬亲自教你!Android内存泄漏总结,看看这篇文章吧!
  5. centos 6.5 apache mysql php_CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境
  6. 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
  7. security工作笔记007---spring security自定义AuthenticationProvider,验证规则
  8. 刘强东喊出技术转型第二年,京东AI全景图首次披露
  9. FastDFS存储服务器部署
  10. 联调测试是什么意思_阿里开源 KT Connnect,轻量级云原生测试环境治理平台来啦!...
  11. 飞鱼星路由器如何限制外网访问服务器网站,飞鱼星路由器如何限制禁止指定IP上网...
  12. 【嵌入式模块】DS1302 时钟定时芯片
  13. java dns缓存清理_清除DNS缓存信息方法
  14. 深入理解Linux内核-第3版 译者序、前言、目录 内核2.6.11
  15. 社会各界送别“国医大师”邓铁涛
  16. PostgreSQL使用PostGIS插件,存储GIS数据
  17. Go语言bufio包(读与写)
  18. python-opencv第六期:addWeighted函数详解
  19. gcc流程及鲜有人知的参数
  20. 集多功能为一体的智能WiFi模块Linux多线程处理器openwrt开发板工业4G路由器网口有线转无线WiFi

热门文章

  1. Lambda表达式的使用
  2. 20145226夏艺华 《Java程序设计》第3周学习总结
  3. linux all version source code
  4. ADO之connection
  5. 实现才是目的——《大道至简》第六章读后感
  6. 使用SVN钩子运行PHP更新服务器代码的注意事项
  7. F#基础教程 大纲
  8. android app自动更新界面_Android自定义view之模仿登录界面文本输入框(华为云APP)...
  9. Git指令2 - 操作分支
  10. (七)Vue 项目规范