每隔几天一次,我们的备份到外部USB硬盘就会出现故障,在运行CentOS 6.4 64位的hp DL380 G5服务器上失败。 如果我cd /mnt/backup
并运行ls
它会报告ls: reading directory .: Input/output error
,但mount -l
报告/dev/sda1 on /mnt/backup type ext4 (rw)
。 当我到现场检查时,他们总是报告外部驱动器上的指示灯缓慢闪烁,这对于睡眠状态显然是正常的。 但是我不要求它在进行rsnapshot运行之前进入睡眠状态,但是rsnapshot导致我的脚本失败,甚至有机会发生。 它试图节省电力吗? 我怎样才能做到这一点?
rsnapshot抱怨:
/usr/bin/rsnapshot daily: ERROR: /mnt/backup/.snapshots does not exist.
当然,如果现场的人拔出并重新插入驱动器,我可以重新挂载它,并且.snapshots
肯定存在,并且rsnapshot将运行而不会出错。 有一段时间,直到下一个随机发生,那就是。 顺便说一句,这是一个相当新的WD Passport硬盘。
那么我怎么告诉它保持清醒?
如果这个hw poweroff是linux内核的一个正常的函数,它正确地处理它。 不,我认为这是来自惠普硬件的惊喜。
我build议一个简单的解决方法。 放入crontab:
* * * * * dd if=/dev/sda of=/dev/null bs=512 count=1
这将在每分钟读取pendrive的分区表中。 它不会降低pendrive的使用寿命,因为它只能从中读取操作,但会阻止打开睡眠模式。
在我的系统中,我从未处理过这样的问题。 如果安装了一个pendrive,它被安装,如果我忘记了,并且在两周后尝试使用它的分区,它可以打开,没有一个单一的内核警告。
也许防止高清睡眠和固件caching的最好的方法是读取磁盘的随机扇区:
* * * * * bash -c 'dd if=/dev/sda of=/dev/null count=1 skip=$RANDOM'
它对我来说工作得很好。