我有一个脚本,通过tar运行系统文件的备份作为我的服务器的cronjob。 每次脚本被解雇,它都成功完成任务。 所有的备份都经过testing,看起来可以正常工作,而且没有损坏。
但是,我的系统停滞了一段时间,它的速度落后于我的命令。 这与我运行graphics桌面的条件相同。 那么,为什么tar运行后系统会停止运行呢?
这是我的脚本中的命令在crontab中进行tar备份运行。
tar -zcvf tarbackup.tar.gz --one-file-system \ --exclude=/run \ --exclude=/tmp \ --exclude=/home \ --exclude=*.system.tar.gz \ --exclude=*.home.tar.gz \ /
编辑:
为了解决这个问题,我不得不每次重启。 我想知道为什么会发生,所以我可以探索运行tar备份的选项,而不必重新启动系统。
当脏页正在写入磁盘时发生停顿; 您可以在这篇LWN文章中快速介绍这个问题。 基本上,用于caching写入的内存量的当前默认值太高了。 尝试将/ proc / sys / vm / dirty_background_bytes设置为104857600,将/ proc / sys / vm / dirty_bytes设置为209715200.您可以通过运行sysctl或永久性地通过编辑/etc/sysctl.conf来完成当前引导。
这个答案的function是避免你必须操作全局的dirty_bytes / dirty_background_bytes系统,这可能会影响到其他应用程序,而不做备份。
这是一个诚实的黑客,但我留下它的情况下,它对你有用。
tar -zcv --one-file-system \ --exclude=/run \ --exclude=/tmp \ --exclude=/home \ --exclude=*.system.tar.gz \ --exclude=*.home.tar.gz \ / | \ dd bs=2048k oflag=sync of=tarbackup.tar.gz