3月 05

linux系统中的在线安装升级工具

linux安装软件时经常需要依赖其他软件包,使用源码和安装包安装给工作带来很多不便。幸好linux厂商提供了强大的
更新升级工具:
yum用于centos、RedHat和fedora
apt-get用于Ubuntu
pacman用于Arch
安装工具均为单进程,所以只能逐个升级。我收集的主要使用命令如下。

yum 使用
um update packagename #升级包
yum -y upgrade #升级系统中的所有包
yum check-update #显示可升级的软件包
yum clean #删除下载后的旧的header。和clean all相同
yum clean oldheaders #删除旧的headers
yum clean packagename #删除下载后的软件包
yum info #显示可用软件包信息
yum info packagename #显示指定软件包信息
yum install packagename #安装指定软件包
yum list #显示可用软件包
yum list packagename #列出软件包
yum list installed #显示安装了的软件包
yum list updates #显示可升级的软件包
yum provides packagename #显示软件包所包含的文件
yum remove packagename #删除制定的软件包,确认判定指定软件包的依存关系。
yum search 关键字 #利用关键字搜索软件包。搜索对象是,RPM文件名,Packager(包),Dummary,Description的各型

apt-get 使用
apt-cache search packagename #搜索包
apt-cache show packagename #获取包的相关信息
apt-cache depends packagename #了解使用依赖
apt-cache rdepends packagename #查看该包被哪些包依赖
apt-get install packagename #安装包
apt-get install packagename – – reinstall #重新安装包
apt-get -f install #修复安装”-f = ——fix-missing”
apt-get remove packagename #删除包
apt-get remove packagename – – purge #删除包,包括删除配置文件等
apt-get update #更新源
apt-get upgrade #更新已安装的包
apt-get dist-upgrade #升级系统
apt-get dselect-upgrade #使用 dselect 升级
apt-get build-dep packagename #安装相关的编译环境
apt-get source packagename #下载该包的源代码
apt-get autoclean #清理无用的包
apt-get check #检查是否有损坏的依赖

pacman 使用
pacman -S packagename #安装软件包
pacman -R packagename #删除软件包
pacman -Syu #升级系统中的所有包
pacman -Ss package #查询软件包
pacman -Qs package #查询已安装的包
pacman -Sw package #下载但不安装包

(本文为张子萌整理,如有遗漏请提醒)

3月 02

linux 下用 cronolog 切割 tomcat catalina日誌

http://cronolog.org/下载cronolog软件。

cronolog-1.6.2.tar.gz

上传到服务器,操作如下:

# tar zxvf cronolog-1.6.2.tar.gz

# cd cronolog-1.6.2

# ./configure

# make && make install

如果安裝正常,cronolog安装完毕。开始修改tomcat。

编辑bin/catalina.sh文件。

首先找到“touch “$CATALINA_BASE”/logs/catalina.out”并注释掉,并编辑如下

elif [ “$1” = “start” ] ; then

shift
#touch “$CATALINA_BASE”/logs/catalina.out
if [ “$1” = “-security” ] ; then
echo “Using Security Manager”
shift
“$_RUNJAVA” “$LOGGING_CONFIG” $JAVA_OPTS $CATALINA_OPTS
-Djava.endorsed.dirs=”$JAVA_ENDORSED_DIRS” -classpath “$CLASSPATH”
-Djava.security.manager
-Djava.security.policy==”$CATALINA_BASE”/conf/catalina.policy
-Dcatalina.base=”$CATALINA_BASE”
-Dcatalina.home=”$CATALINA_HOME”
-Djava.io.tmpdir=”$CATALINA_TMPDIR”
org.apache.catalina.startup.Bootstrap “$@” start 2>&1
| /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >>/dev/null &
# org.apache.catalina.startup.Bootstrap “$@” start
# >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

if [ ! -z “$CATALINA_PID” ]; then
echo $! > $CATALINA_PID
fi
else
“$_RUNJAVA” “$LOGGING_CONFIG” $JAVA_OPTS $CATALINA_OPTS
-Djava.endorsed.dirs=”$JAVA_ENDORSED_DIRS” -classpath “$CLASSPATH”
-Dcatalina.base=”$CATALINA_BASE”
-Dcatalina.home=”$CATALINA_HOME”
-Djava.io.tmpdir=”$CATALINA_TMPDIR”
org.apache.catalina.startup.Bootstrap “$@” start 2>&1
| /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >>/dev/null &
# org.apache.catalina.startup.Bootstrap “$@” start
# >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

if [ ! -z “$CATALINA_PID” ]; then
echo $! > $CATALINA_PID
fi
fi

重新启动tomcat,日志分割格式如下:

catalina.yyyy-mm-dd.out

cronolog 安装后所在位置,系统版本不同可能位置不一样,以 which 或whereis命令查看到的位置为准。

7月 30

oracle用nfs时mount设置

oracle归档进程写日志到NFS文件系统,与一般的在NFS文件系统上通过命令添加删除文件是不同的,要在mount NFS文件系统的时候指定一定的参数才能让归档进程正常归档。

原来是这样指定mount的:

mount -t nfs 192.168.60.110:/exitgogo /free/oracle/orarch

增加mount参数:

Mount -t nfs -o rw,hard,nointr,tcp,noac,vers=3,timeo=600,rsize=32768,wsize=32768 192.168.60.110:/exitgogo /free/oracle/orarch

指定参数后,归档进程就可以正常的在NFS文件系统上归档了。

指定参数具体含义如下:

rw 以读写方式安装文件系统(也必须要以相同的方式来导出)

ro 以只读方式安装文件系统

bg 如果安装失败(服务器没有响应),在后台一直尝试,继续发其它的安装请求

hard 以硬方式安装文件系统(这是默认情况)。如果服务器当机,让试图访问它的操作被阻塞,直到服务器恢复为止。

soft 以软方式安装文件系统。如果服务器当机,让试图访问它的操作失败,返回一条出错消息。这项功能对于避免进程“挂”在无关紧要的安装操作上来说非常有用。

intr 允许用户中断被阻塞的操作(并且让它们返回一条出错消息)

nointr 不允许用户中断

retrans=n 指定在以软方式安装的文件系统上,在返回一条出错消息之前重复发出请求的次数。

timeo=n 设置请求的超时时间(以十分之一秒为单位)

rsize=n 设置读缓冲的大小为n字节。对TCP和UDP安装都适用,但最优值不一样(32K较好)。

wsize=n 设置写缓冲的大小为n字节。对TCP和UDP安装都适。

nfsvers=n 设置NFS协议的版本 2 或者 3 (在正常情况下是自动的)

tcp 选择通过TCP来传输。默认选择UDP

fg 和bg正好相反,是默认的参数

mountport 设定mount的端口

7月 30

delphi多线程CreateThread函数

简单介绍多线程API 函数:
构建线程:

CreateThread(参数1,–安全属性(一般=Nil,默认安全属性)

参数2,–线程堆栈尺寸(一般=0,与主线程相同长度,而且可以根据需要自动变化)
参数3,–指向函数名指针,@函数名,这个参数十分重要,不正确将无法调用成功。
参数4,–用户需要向线程传递的参数,是一个指向结构的指针,不需传递参数时,为Nil。
参数5)–传入与线程有关的一些参数,例如:
Create_SUSPENDED 创建一个挂起的线程;
0 创建后立即激活。

7月 26

delphi7修改系统时间

添加edit和两个button,第一个button获得系统时间,第二个button按照edit中的时间设置本地系统时间。

注意:设置时间格式不要修改。delphi7通过。

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=FormatDateTime(‘yyyy-mm-dd hh:mm’,now);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
SysTime:TSystemTime;
MyTime:TDateTime;
begin
MyTime:=StrToDateTime(Edit1.Text);
DateTimeToSystemTime(MyTime,SysTime);
SetLocalTime(SysTime);
end;