标签:Linux

字符集错误使SVN无法更新的解决方法

SVN更新或检出有时候会遇到编码错误的提示:

Can't convert string from 'UTF-8' to native encoding

1、这种问题一般是由于客户端使用的非UTF8字符集,而SVN使用UTF8,可以通过临时修改环境变量的方式进行调整,然后再进行up或者co就不会有错误提示了,屡试不爽。

export LANG=zh_CN.UTF-8

2、如果上述操作不成功,也可能是客户端字符集没有正确安装或配置。需要先安装配置字符集。在debian上,有如下的错误提示就说明没有正确安装或者配置:

root@localhost:~# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

使用下面的步骤重新配置安装,配置中选择常用的几个就够了:en_US、en_US.iso88591、en_US.utf8、zh_CN、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8

root@localhost:~# dpkg-reconfigure locales

这时SVN再update或者checkout就不会有问题了。

WordPress自动备份脚本

blog也运行3个月了,一直没有备份,今天写了个自动备份数据脚本,备份步骤:
1、连接数据库,导出SQL备份脚本到临时目录并压缩
2、使用mutt邮寄到备份信箱
3、删除临时文件

为了安全起见,先为脚本分配独立的只读用户和密码:

grant select on niu3y.* to niu3ybak@'localhost' identified by 'backup';

编写shell 脚本:

# 数据库配置
DBNAME=niu3y
DBPASS=backup
DBUSER=niu3ybak
# 备份的邮件地址
EMAIL="niu3yang@gmail.com"

/usr/bin/mysqldump --skip-opt -u $DBUSER -p$DBPASS $DBNAME > backup.sql
/usr/bin/gzip backup.sql
DATE=`date +%Y%m%d`
/bin/mv backup.sql.gz $DBNAME-$DATE.sql.gz
# 用mutt
/usr/bin/mutt -a $DBNAME-$DATE.sql.gz $EMAIL -s "n3yang.com MySQL Backup $DATE"
# 没有mutt的时候用mail
# /usr/bin/uuencode $DBNAME-$DATE.sql.gz $DBNAME-$DATE.sql.gz | /bin/mail -s 'n3yang.com MySQL Backup $DATE' $EMAIL
/bin/rm $DBNAME-$DATE.sql.gz

最后加入crontab,每周日运行

3 2 * * 0 /root/crontab/niu3y.backup.db.sh

修正VPS上日志时间不准

昨天查看nginx日志发现时间与北京东八区的时间对不上,首先想到的是由于VPS在美国,是由于时区引起的问题。通过date命令查看当期日期:
[root@niu3y ~]# date
Wed Jan 12 19:57:03 MST 2011

果然是时区不对,于是调整时区:
[root@niu3y ~]# cp -f /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
[root@niu3y ~]# date
Thu Jan 13 10:59:32 CST 2011

这次日期和时间终于对上了,可是再查看nginx的日志时间还是对不上,重启nginx之后写入时间准确。
既然调整了时区,就再通过ntp来校正一下时间吧,失败:
[root@niu3y ~]# ntpdate 1.centos.pool.ntp.org
13 Jan 11:10:07 ntpdate[26483]: Can't adjust the time of day: Operation not permitted

那clock和date是否可以调整时间呢?果然都可耻的失败鸟:
[root@niu3y ~]# clock -r
hwclock is unable to get I/O port access: the iopl(3) call failed.
[root@niu3y ~]# clock -w
hwclock is unable to get I/O port access: the iopl(3) call failed.
[root@niu3y ~]# date -s 'Thu Jan 13 11:20:00 CST 2011'
date: cannot set date: Operation not permitted
Thu Jan 13 11:20:00 CST 2011
[root@niu3y ~]# date
Thu Jan 13 11:19:13 CST 2011

没有权限,这应该是OpenVZ的限制,时间要和母鸡相同…

VPS上创建网速测试文件

一般申请VPS之后都会想测试一下从服务器到本地的链接速度,使用linux的dd命令可以简单创建一个空文件来测试。
通过下面的命令可以创建一个10M的文件,并取名为10m.file
dd if=/dev/zero of=10m.file bs=10M count=1
参数说明:
if:input file, 从/dev/zero 用0填写文件
of:out file, 输出文件
bs:BYTES, 文件块大小,默认值512 bytes
count:多少个bs

另外,bs参数的大小决定了dd一次读取多少数据到内存,VPS上一般内存都很紧张,所以如果想创建更大的文件,还是通过调整count来设定吧。