应用工程师反馈使用linux中SSHD上传升级文件sftp显示传输成功,但重启后文件大小为0.
经定位是 openssh 中的sftp-server 在传输完毕后没有及时把文件内容从内存中写到文件
解决方法 ,修改openssh 中sftp-server.c代码 ,在传输完成时执行如下脚本命令:
$ sync
$ echo 3 >/proc/sys/vm/drop_caches
上面的echo 3 是清理所有缓存
echo 0 是不释放缓存
echo 1 是释放页缓存
ehco 2 是释放dentries和inodes缓存
echo 3 是释放 1 和 2 中说道的的所有缓存
实际修改如下: