分类目录归档:Linux

一个 xl2tpd 无法连接的问题

1个月前手贱,将 xl2tpd 的配置文件 /etc/ppp/options.xl2tpd 里的 name 字段给改了,只因看原来设置的 l2tp不爽,改的时候以为这只是一个无关瘙痒的字段。但后来 vpn 就一直无法成功连接,直到今天对着网上的教程一字一字的查我的配置文件,才发现别人的 options.xl2tpd 内的 name 字段和 chan-secret 内的 server 字段是一样的,而我的设置不一样,遂想到这两个文件内的 name 和 server 是相关的,于是改为相同的值,重连 VPN …… 成功连接!

EC2 使用手记

注册EC2服务并创建一个自己的实例

备份Instance

迁移Bundle

使用Command Line

ec2的命令行管理指令需要使用Private key和X.509证书,如果你还没有这2个文件,则可以通过以下步骤获取:

  1. 进入到YOur Account,选择Security Credentials
  2. 找到Access Credentials,切换标签到X.509 Certificates
  3. 点击Create a New Certificate建立新的证书
  4. 下载刚刚生成的Private Key(pk-xxxxx.pem形式的文件)和X.509 Certificate(cert-xxxx.pem形式的文件)

然后将这2个文件上传到ec2服务器上,我是将这2个文件放在了home下的.ec2中。之后在使用ec2的管理命令的时候,就可以通过指定-K your_private_key.pem和-C your_x.509_cert.pem的方式来使用这2个文件了。
如果不想每次都输这两个参数的话,也可以通过以下的方法将这2个文件添加到环境变量中,这样ec2命令在执行的时候则会自行去使用这2个文件:

export EC2_PRIVATE_KEY=~/.ec2/your_private_key.pem
export EC2_CERT=~/.ec2/your_X.509_cert.pem

另外,很多命令在使用的时候都需要指定Region,而这个参数不是必须的,如果不指定这个参数的话,则默认是us-west-1,如果你不是这个Region,则需要通过–region参数来指定。
你可以使用此命令查看当前ec2所在区域:

查看各区域名称及URL命令:

ec2-describe-regions

一些概念

ec2-bundle-image和ec2-bundle-vol的区别:
ec2-bundle-image是从一个loopback file(回环文件?我的理解就是类似ISO的文件)创建AMI。
ec2-bundle-vol是本机(就是你的ec2)的根文件系统创建AMI。

Linux 点滴

1. Ubuntu 的最上方的面板如果被误删之后如何恢复呢?

不用抓狂,三句话解决问题。

gconftool --recursive-unset /apps/panel
rm -rf ~/.gconf/apps/panel
pkill gnome-panel

2. 批量修改文件或目录权限

find -type d -exec chmod 745 {} \;
find -type f -exec chmod 644 {} \;
# 或者
find -type d|xargs chmod 745
find -type f|xargs chmod 644

3. 修改服务器时区:

tzselect

如果要修改时区并且马上生效,可以更换/etc/localtime 文件来实现。比如修改时区为中国上海,那么就可以使用如下的命令来使得时区的更改生效。

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4. Amazon Linux AMI切换到root的方法:

sudo chroot /

5. 如何在Red hat上安装iostat:
iostat是sysstat内的一个工具,使用下面这个命令安装sysstat

yum install sysstat

6. 使用iostat查看硬盘I/O情况

iostat -x

各字段解释:
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。即 delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈。

7. 一条指令结束同一程序的多个进程

sudo kill -9 `pidof name`

8. 查看某一进程都打开/占用了哪些文件

lsof -c name

or

lsof -p pid

8. 如何查看Mysql数据库文件存放位置
Mysql配置文件(一般的存放位置为 /etc/my.cnf)中的datadir即为数据文件存放位置

WordPress 在 Nginx 中的 Rewrite 规则

查看wordpress设置的时候看到wordpress支持/year/month/article_title这种形式的链接,早就厌烦了URL后带一堆&xxx=nnn的形式,于是决定改成这种“漂亮地址”。
当然,这种链接需要作URL重写,我的Web Server用的Nginx,于是打开Nginx的设置文件nginx.conf,找到此blog的location,加上了

if (-f $request_filename) {
    break;
}
rewrite ^(.*)$ /index.php?$1 last;

修改Wordpress为固定链接形式后重启Nginx,再打开Blog里的文章,变成“漂亮地址”了。
但是用了没多久,就发现了问题:我在登录后并没有转到wordpress的后台,而是提示说文章不存在。仔细一看URL地址,是/wp-admin/,这是wordpress的管理目录,省略了缺省的index.php,因为我用的”-f”(文件是否存在),于是if判断返回的是false,转到了下边的rewrite,把wp-admin当文章处理了。
于是再次修改Rewrite判断为”-e”(文件或目录是否存在)。

if (-e $request_filename) {
    break;
}
rewrite ^(.*)$ /index.php?$1 last;

重启Nginx,再登录后台就没问题了。

使用 nVidia 受限驱动后启动画面分辨率低的解决方法

本文非原创,内容修改自 http://linuxzh.blogbus.com/logs/63350102.html
Ubuntu 10.04, x64 系统。为了使用compiz桌面特效,安装了Nvidia的限制驱动,不过启动画面splash的分辨率由1440*900降低成640*480了。网上看了好多帖子,包括 jorux 的帖子 “解决升级显卡驱动后开机动画低分辨率问题”,一直没有解决问题。
今天终于在英文论坛上找到一个切实可行的办法,并经本人试验,在1440*900的分辨率下确实有效。特与大家分享:
原文地址:http://idyllictux.wordpress.com/2010/04/26/lucidubuntu-10-04-high-resolution-plymouth-virtual-terminal-for-atinvidia-cards-with-proprietaryrestricted-driver/
现简述解决过程:
1. 修改/etc/default/grub文件,使用uvesafb的framebuffer来启动

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# GRUB_GFXMODE=640×480

修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="nomodeset video=uvesafb:mode_option=1440x900-24,mtrr=3,scroll=ywrap"
GRUB_GFXMODE=1440x900

2. 修改/etc/initramfs-tools/modules文件
添加下面这行:

uvesafb mode_option=1440x900-24 mtrr=3 scroll=ywrap

3. 运行下面的命令,启用framebuffer:

echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

4. 运行下面的命令,更新grub配置文件:

sudo update-grub2
sudo update-initramfs -u

更改 VirtualBox 自动挂载数据空间的位置

Virtualbox 从 4.0 开始支持自动挂载数据空间,在 Linux 为客户机的情况下,Linux 内默认的挂载位置为/media/sf_share (在 Solaris 为 /mnt/sf_share),其中 sf_ 为前缀,share 为共享空间的名称,如果想更改这个默认挂载的位置,可以通过对 /VirtualBox/GuestAdd/SharedFolders/MountPrefix 和 /VirtualBox/GuestAdd/SharedFolders/MountDir 赋予新的值来完成。
以下为更改方法
1. 更改 Virtualbox 自动挂载目录的前缀
sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountPrefix sf_
2. 更改 Virtualbox 的自动挂载位置到home
sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountDir $HOME