作者存档: zhcj - 第10页

chroot升级gentoo和arch的脚本

笔记本上有3个linux系统和1个win7,平时主要用gentoo,偶而用一下其他系统,主要就是升升级。

由于我是个升级控,因此经常在此系统中chroot更新彼系统,为了免去一条条输入命令,写了个简单的脚本。

ubuntu和arch下升级gentoo的脚本:

1、chroot进入gentoo的脚本(文件名为g),存到ubuntu和arch的用户目录下,root后直接运行./g或者ubuntu下sudo ./g即可。

#!/bin/sh
cp /etc/resolv.conf /gentoo/etc/
mount -t proc proc /gentoo/proc
mount -o bind /dev /gentoo/dev
chroot /gentoo /bin/bash

注:“gentoo”为挂载的gentoo分区名。

2、更新gentoo系统脚本(文件名为g),放到gentoo系统分区/目录下,上一步chroot进入gentoo后,运行/g即可。

#!/bin/sh
env-update && source /etc/profile
export PS1="(chroot) $PS1"
emerge --sync && emerge --update --deep --newuse --with-bdeps=y @world

gentoo下升级arch、ubuntu的脚本和上面类似,只不过第二个脚本更简单一些,因为有些命令无法运行,如env-update,另外,把emerge换成pacman或者apt-get就行了。

由于ubuntu默认不能chroot,因此无法在其他系统下更新它,不过,网上有教程可以让ubuntu也可以chroot。

我错了,ubuntu照样可以chroot,只需要添加root密码即可,在ubuntu中:

sudo passwd root

gentoo中安装tengine

今天有时间折腾了一下tengine,终于在gentoo中把nginx切换成了tengine。没有用tengine的默认配置,使用了gentoo中编译nginx的参数及路径。过程如下:

1、下载tengine

地址:http://tengine.taobao.org/download/tengine-1.4.2.tar.gz

2、解压

tar -xvf tengine-1.4.2.tar.gz

3、编译安装(按照gentoo中的nginx编译参数配置)

cd tengine-1.4.2
./configure --prefix=/usr --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error_log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access_log --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-scgi-temp-path=/var/tmp/nginx/scgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
make
make install

4、启动项及设置开机启动

vi /etc/init.d/nginx

添加(gentoo的/etc/init.d/nginx):

#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx.initd,v 1.2 2012/07/18 18:59:46 hollow Exp $

extra_commands="configtest"
extra_started_commands="upgrade reload"

description="Robust, small and high performance http and reverse proxy server"
description_configtest="Run nginx' internal config check."
description_upgrade="Upgrade the nginx binary without losing connections."
description_reload="Reload the nginx configuration without losing connections."

nginx_config="/etc/nginx/nginx.conf"

command="/usr/sbin/nginx"
command_args="-c ${nginx_config}"
pidfile=${pidfile:-/var/run/nginx.pid}

depend() {
	need net
	use dns logger netmount
}

start_pre() {
	if [ "${RC_CMD}" != "restart" ]; then
		configtest || return 1
	fi
}

stop_pre() {
	if [ "${RC_CMD}" = "restart" ]; then
		configtest || return 1
	fi
}

stop_post() {
	rm -f ${pidfile}
}

reload() {
	configtest || return 1
	ebegin "Refreshing nginx' configuration"
	kill -HUP `cat ${pidfile}` &>/dev/null
	eend $? "Failed to reload nginx"
}

upgrade() {
	configtest || return 1
	ebegin "Upgrading nginx"

	einfo "Sending USR2 to old binary"
	kill -USR2 `cat ${pidfile}` &>/dev/null

	einfo "Sleeping 3 seconds before pid-files checking"
	sleep 3

	if [ ! -f ${pidfile}.oldbin ]; then
		eerror "File with old pid not found"
		return 1
	fi

	if [ ! -f ${pidfile} ]; then
		eerror "New binary failed to start"
		return 1
	fi

	einfo "Sleeping 3 seconds before WINCH"
	sleep 3 ; kill -WINCH `cat ${pidfile}.oldbin`

	einfo "Sending QUIT to old binary"
	kill -QUIT `cat ${pidfile}.oldbin`

	einfo "Upgrade completed"
	eend $? "Upgrade failed"
}

configtest() {
	mkdir -p /var/log/nginx || return 1
	mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,scgi,uwsgi} || return 1

	ebegin "Checking nginx' configuration"
	${command} -c ${nginx_config} -t -q

	if [ $? -ne 0 ]; then
		${command} -c ${nginx_config} -t
	fi

	eend $? "failed, please correct errors above"
}

开机启动

rc-update add nginx default

完成,测试一下:

nginx -v
Tengine version: Tengine/1.4.2 (nginx/1.2.5)

已经把笔记本和局域网的gentoo服务器都换了,vps中的也换了,虽然对性能提升基本没什么影响,但对于国产开源软件,支持一下。。。

grub2挂载iso安装archlinux

今天又重新在笔记本上硬盘安装了一个arch+kde。特此记录一下,在已经装有grub2的机器上安装archlinux过程:

1、下载iso文件

下载地址:http://mirrors.163.com/archlinux/iso/latest/

2、添加grub启动项

menuentry "Archlinux-2012.11.01-dual.iso" {
    set isofile="/software/os/archlinux-2012.11.01-dual.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCH_201211 img_dev=/dev/sda6 img_loop=$isofile
    initrd (loop)/arch/boot/i686/archiso.img
}

grub进入live之后,有个安装说明文件(install.txt),随时可以看。

3、挂载安装分区

mount /dev/sda4 /mnt

4、联网

如果是有线网络,live启动直接就已经联网,无线网络的话,运行:

wifi-menu

选择无线网络,并且输入密码就可以了。

5、编辑源

vi /etc/pacman.d/mirrorlist

建议留下适合自己的源,如我只留下163的源,其余全部删除。

6、安装基本系统到硬盘

pacstrap /mnt base base-devel

7、生成fstab文件

genfstab -p /mnt >> /mnt/etc/fstab

8、chroot进入新系统

arch-chroot /mnt

9、配置系统

vi /etc/hostname
//修改主机名
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
//设置时区
vi /etc/locale.gen
locale-gen
//设置locale
mkinitcpio -p linux
//生成内核
passwd
//设置root密码
useradd -m -g users -s /bin/bash arch
passwd arch
//添加用户名:arch,并设置密码
vi /etc/pacman.conf
//修改pacman配置,可以在这里启用kde的unstable源
pacman -Syu
//升级系统
echo "LANG=zh_CN.UTF-8" >> /etc/locale.conf
//设置中文环境

10、添加grub项,此项我是用ubuntu的update-grub自动生成的,也可以自己添加。

menuentry 'Arch' {
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos4'
        linux /boot/vmlinuz-linux root=/dev/sda4
        initrd /boot/initramfs-linux.img
}

11、卸载分区,重启

umount /mnt
reboot

至此,基本系统安装完成,以下步骤为安装kde桌面系统。

13、安装kde

 pacman -S kdebase kde-l10n-zh_cn kdeplasma-applets-networkmanagement kdegraphics-gwenview kdegraphics-okular kdegraphics-ksnapshot oxygen-gtk3 oxygen-gtk2 kde-gtk-config

添加启动项(已无需再添加dbus启动,系统好像自己加上了)

systemctl enable kdm.service
systemctl enable NetworkManager.service

注:systemd的可用service配置在/usr/lib/systemd/system文件夹中。

14、安装yaourt
需要在/etc/pacman.conf中添加一个法国的源才行

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

15、安装其他软件

 pacman -S ntfs-3g dejavu fcitx kcm-fcitx kfaenza-icon-theme firefox firefox-i18n firefox-i18n-zh-cn

安装过程中可能还有一些问题出现,自行百度即可解决。

[转]nginx运行检测脚本

来源:http://coolner.blog.51cto.com/957576/688188

检测nginx服务中断并自动启动脚本:

if ps aux | grep 'nginx' | grep -v grep  > /dev/null ; then
     echo "nginx is runnning !"    
else
     echo "nginx is down. Starting over..."
     /etc/init.d/nginx start
fi

将此脚本保存为nginx-running.sh,在crontab加入每分钟检测一次计划即可。

tengine

程序官网:http://tengine.taobao.org/index_cn.html

简介

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目。现在,它由Tengine团队开发和维护。Tengine团队的核心成员来自于淘宝搜狗等互联网企业。

特性

动态

邮件列表

konsole字体配置

kde中默认的konsole字体太少,显示汉字为楷体,比较难看,因此我一般把它改为字体列表中没有的文泉驿微米黑。因为无法在图形界面修改,只能去修改配置文件,方法如下:

vi ~/.kde4/share/apps/konsole/Shell.profile

将其中的Font一行修改为:

Font=WenQuanYi Micro Hei Mono,10.5,-1,5,50,0,0,0,0,0

此方法在gentoo和archlinux的kde环境中均适用。

另:~/.kde4/share/config/konsolerc也是konsole的配置文件,有如下语句指向上述文件:

[Desktop Entry]
DefaultProfile=Shell.profile

[Favorite Profiles]
Favorites=Shell.profile

gentoo桌面环境去掉perl依赖

gentoo桌面环境默认依赖perl,/etc/make.conf中添加-perl后,又干掉了71个perl相关包。

Can’t locate DBI/DBD.pm in @INC

今天gentoo更新时,mysql升级了,运行revdep-rebuild时,提示dev-perl/DBD-mysql需要重新编译。结果在编译过程中出错:

Can’t locate DBI/DBD.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl5/5.16.1/i686-linux /usr/local/lib/perl5/5.16.1 /usr/lib/perl5/vendor_perl/5.16.1/i686-linux /usr/lib/perl5/vendor_perl/5.16.1 /usr/local/lib/perl5/5.16.0/i686-linux /usr/local/lib/perl5/5.16.0 /usr/local/lib/perl5 /usr/lib/perl5/vendor_perl/5.16.0/i686-linux /usr/lib/perl5/vendor_perl/5.16.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.16.1/i686-linux /usr/lib/perl5/5.16.1 .)

网上搜索一番,也有一些解决办法,但后来发现dev-perl/DBD-mysql这货是perl连接mysql数据库的,我又不用perl,要它干什么?

于是,将mysql中的perl这个USE去掉,运行emerge –depclean && revdep-rebuild后,干掉了相关的8个包。一切都清静了。。。

后来发现,稳定版gentoo中的mysql默认不开启perl这个USE。

ERROR: unable to bind listening socket for address ‘127.0.0.1:9000’

php5.4升级后,重启php-fpm出错:

ERROR: unable to bind listening socket for address ‘127.0.0.1:9000’

解决办法:

killall php-fpm

然后重启即可。

俞军的PM12条

1、PM首先是用户
2、站在用户角度看待问题
3、用户体验是一个完整的过程
4、追求效果,不做没用的东西
5、发现需求,而不是创造需求
6、决定不做什么,往往比决定做什么更重要
7、用户是很难被教育的,要迎合用户,而不是改变用户
8、关注最大多数用户,在关键点上超越竞争对手,快速上线,在实践中不断改进
9、给用户稳定的体验预期
10、如果不确定该怎么做,就先学别人是怎么做的
11、把用户当作傻瓜,不要让用户思考和选择,替用户预先想好
12、不要给用户不想要的东西,任何没用的东西对用户都是一种伤害

第 10 页,共 49 页« 最新...89101112...203040...最旧 »