Linux环境下判断服务器是否正常关机
2009-05-17 来自:ZDNet 收藏
系统启动的时候生成一个文件,正常关机的时候则删除这个文件,则可以根据系统开机时有没有那个文件来判断是不是非正常关机。
系统启动的时候生成一个文件,正常关机的时候则删除这个文件,则可以根据系统开机时有没有那个文件来判断是不是非正常关机。
步骤:
在/etc/rc.d/init.d/下编程脚本。
判断是否正常关机,和生成文件的脚本:touch-file.sh
#!/bin/sh file=/tmp/check if [ -e $ ];then echo "this is not normal shutdown" >>/var/log/checkmessage else echo "this is normal shutdown and touch file" >>/var/log/checkmessage touch $ fi
正常关机删除文件的脚本:rm-file.sh
#!/bin/sh file=/tmp/check echo "this is normal shutdown and rm file" >>/var/log/checkmessage rm -rf $
让脚本自动执行。
ln -s /etc/rc.d/rc0.d/K01rm-file /etc/rc.d/init.d/rm-file.sh
注意:
#ll /etc/rc.d/rc0.d/
软连接两边的名字不哪呢个相同,后一个可以用绝对路径或是相对路径,千万保证两边的名字不一样。
ln -s /etc/rc.d/rc6.d/K01rm-file /etc/ ......
1、转换服务器归档模式,如果已是归档模式可跳过此步:
%sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> shutdown immediate; (即时关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出)
2、连接:
[root@dbser1 orabak]# rman target=rman/rman@mydb(启动恢复管理器)
3、基本设置:
RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
RMAN> configure channel 1 device type disk fromat "/backup1/backup_%U"; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure channel 2 device type disk fromat "/backup2/backup_%U"; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure controlfile autoback ......
1、转换服务器归档模式,如果已是归档模式可跳过此步:
%sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> shutdown immediate; (即时关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出)
2、连接:
[root@dbser1 orabak]# rman target=rman/rman@mydb(启动恢复管理器)
3、基本设置:
RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
RMAN> configure channel 1 device type disk fromat "/backup1/backup_%U"; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure channel 2 device type disk fromat "/backup2/backup_%U"; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure controlfile autoback ......
1、class的定义一定要在后面加“;”
2、用cout时要在main函数前加 using namespace std;
3、出现 undefined reference to `std::ios_base::Init::Init() 提示的话,问题是gcc编译器出现的,解决的办法是:在linux下编译c++ 程序要使用g++ 编译器,如果你要是使用gcc编译器就会有上面的报错信息,只要在在gcc后加上 -lstdc++就可以了
eg: g++ example.c -lstdc++ ......
1、class的定义一定要在后面加“;”
2、用cout时要在main函数前加 using namespace std;
3、出现 undefined reference to `std::ios_base::Init::Init() 提示的话,问题是gcc编译器出现的,解决的办法是:在linux下编译c++ 程序要使用g++ 编译器,如果你要是使用gcc编译器就会有上面的报错信息,只要在在gcc后加上 -lstdc++就可以了
eg: g++ example.c -lstdc++ ......
最近想在Linux主机上架设Oracle RAC,所以不断地收集相关资料,并进行实际研究.
相信大家很快就可以在我的博客中看到相关的研究心得了.
在Linux学习的这段时间,感觉它真是非常奇妙,让我对它的兴趣也越来越浓了,希望能够更好的掌握这个操作系统,并能够熟练地对Oracle进行系统设置并进行优化处理.
大家将会在博客中看到我的相关文章:
Linux FTP服务器的设置
Installing Oracle Database 10g Release 2 On Linux x86
Oracle 10g Patch的安装等 ......
作者:fbysss
msn:jameslastchina@hotmail.com
blog:blog.csdn.net/fbysss
声明:本文由fbysss整理编写,转载请注明出处
关键字:shell编程
背景
同事求助。
需求
一个文本文件,要得到最后一行与倒数第一行相减的结果。
测试文本
#vi test.txt
内容如下:
10
7
9
1
6
脚本
$vi rowSubstract.sh
内容如下:
#脚本注解,用于指明脚本类型是bash。这样,能保证不在bash的脚本环境,执行也没有问题。
#查看当前脚本环境:echo $SHELL。或者简单使用ps命令也可以。
#在linux下, #!/bin/sh和 #!/bin/bash几乎是一样的。
#!/bin/sh
#参数个数检查
#其中,$0为命令本身,$1-$n为参数,$#为参数个数
#if 和 fi成对进行判断
#if后面、[右边和]左边都必须有空格,then 前面需要有分号;
#如果不满足条件,返回一个状态码(必须在0-255之间),一般正确的返回0,错误的返回其他数字
#判断数字,必须使用eq ne gt lt等逻辑运算符, ......
在linux下如何把一个lvm的文件系统/home减到1G。比aix下麻烦,aix下直接把文件系统缩到某个值,对应的lv自动就减少了,不像linux要先缩小文件系统,再缩小lv。
suse1:~ # df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/system-root
5040 2998 1787 63% /
udev 125 1 125 1% /dev
/dev/sda1 69 18 48 28% /boot
/dev/mapper/system-home
6493 146 6018 3% /home
resize2fs以4k block为单位,1G=262144 * 4K
步骤如下
umount /home
e2fsck -f /dev/mapper/system-home
resize2fs /dev/mapper/system-home 262144
lvchange -an /dev/system/home
lvreduce -L1G /dev/system/home
lvchange -ay /dev/system/home
mount /home
详细输出如下
suse1:~ # resize2fs /dev/mapper/system-home 262144
resize2fs 1.40.8 (13-Mar-2008)
Please run 'e2fsck -f /dev/mapper/system-home' first.
suse1:~ # e2fsck -f /dev/mapper/system-home
e2fsck 1.40.8 (13- ......