gojira.net
发现有个页面的排行数据很久没更新了,查了一下,原来是python脚本执行错误:ImportError: No module named lxml
直接安装:yum install python-lxml -y
开始的时候还正常执行,并且也找到了安装包,但结果出现错误,(具体错误没记录,有些忘记了),后来还出现了类似这样的错误:
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Killed
rpmdb: Thread/process 32597/47361617246016 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
----------
failed: Thread died in Berkeley DB library
Freeing read locks for locker 0x5e:
Warning: RPMDB altered outside of yum
后来还导致yum直接没任何反应,只能kill掉,用下面这两个命令搞定。
rm -f /var/lib/rpm/__db.00*
rpm --rebuilddb
搞定。
折腾了半天,后来突然意识到可能是内存不够用了,添加swap试试看:
dd if=/dev/zero of=/root/swapfile bs=4096 count=260720
mkswap /root/swapfile
swapon /root/swapfile
free -m
然后重新 yum install python-lxml -y
很快就安装成功了,测试了下排行榜更新脚本,测试ok。
弄完后在删除swap和swap文件:
swapoff /root/swapfile
/bin/rm -f /root/swapfile
整个事情,报错没头没脑的,按着报错去google都是被引到了错误的方向,浪费了很多时间,原因却很简单,比较坑。经验还是太有用了。