由于项目需要,在CentOS6.3系统中,使用我编写的shell脚本更新过软件,操作人员会习惯性立马断电重启。但重启后,软件都无法正常使用。甲方各种跟我要原因啊……真是把我逼惨了。
各种问度娘有没有啊,根本没有解决方法。
在虚拟机里做了几次脚本升级实验,根本没问题。后来,一想他们更新完那就立马给设备断电重启,就尝试一下给虚拟机也做断电实验试试。果然如此,经过排查断电重启后部分的软件大小都变成 0byte。所以启动的软件的自启动根部不能起作用。
真的是因为更新完软件立马断电的原因。
接下来就是着手解决这个立马断电的情况下也能保存文件的方法了。
下面的网上搜索到的资料:
在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。
解决办法:使用 sync 命令,强制将缓冲区的数据写入磁盘了。
将这条命令写进软件升级脚本的末尾两次,确保升级脚本复制完软件之后立马写入硬盘。至此,问题完整解决。
其实,这条命令在一些脚本都看见过。当时也觉得很好奇这条命令做什么用的,但是也没有深究。现在真是吃一堑长一智。幸好,甲方对我快速能解决掉这个问题没有什么意见。