#(TR1102) Transformer detected a model error at line 17907 in file
#(TR3602) The cube file name or path contains illegal characters.
在TS中,将CUBE的路径去掉,只保存cube的名称即可!
suse linux 下的一些命令(主要用来准备自动批量发布CUBE,收集的一点shell命令资料) qq:331932672
核心
vi script.sh
chmod 777 script.sh
cd /opt/ibm/cognos/c10/bin/
mdl_name=$1
export LC_ALL=zh_CN.gbk
/opt/ibm/cognos/c10/bin/cogtr -c -s -dLogFileName=logfile.log -m/soft/java/model/$mdl_name -dDataWorkDirectory=/soft/java/model/tmp -DModelWorkDirectory=/soft/java/model/tmp -dCubeSaveDirectory=/soft/java/model/cube -dLogFileDirectory=/soft/java/model/log -dDataSourceDirectory=/soft/java/model/data -dModelSaveDirectory=/soft/java/model/data -lrepdb2=0/0
exit 0
~
~
ps -ef | grep RMI
kill -9 7912
PWD
free -m
df -h
tail -f
su - use
wft state
more script.sh
find
cat
chown root java
export
find ./ -name "*.mdl"
du
sf
locale
crontab -l
crontab -r
crontab -e
date
rm
echo $
chmod 777 *
mkdir
uname
tar
ftp IP
tar -xzvf bi*.gz ./transformer
sh
rcmdcall
vi
./script.sh initmdl/db/***.mdl
tail -f /soft/java/model/log/logfile.log
tail -f
export JAVA_HOME=/soft/java/jre
cd /opt/ibm/cognos/c10/bin/cogconfig.sh
cd /opt/ibm/cognos/c10/bin/
cd /opt/soft/java/model/shell/ll.sh
chmod 755 11.sh
:<<BLOCK
....被注释的多行内容
LogFileDirectory=/soft/java/model/log/
ModelSaveDirectory=/soft/java/model/data/
DataSourceDirectory=/soft/java/model/data/
CubeSaveDirectory=/soft/java/model/cube/
DataWorkDirectory=/soft/java/model/tmp
ModelWorkDirectory=/soft/java/model/tmp/
cd /soft/java/model/
shell/script.sh initmdl/db/**.mdl
find -name "*.mdl"
./initmdl/db/**.mdl
……
sleep 5 #等待5秒
ps -ef | grep cogtr | wc -l #此方法会返回cogtr 当前能够处理并发处理请求个数
#打印出当前的cogtr 进程:grep cogtr
cat /soft/java/model/log/logfile.log
tail -f /soft/java/model/log/logfile.log
BLOCK
mdl_name=$1
export LC_ALL=zh_CN.gbk
/opt/ibm/cognos/c10/bin/cogtr -c -s -dLogFileName=logfile.log -m/soft/java/model/$mdl_name -dDataWorkDirectory=/soft/java/model/tmp -DModelW
orkDirectory=/soft/java/model/tmp -dCubeSaveDirectory=/soft/java/model/cube -dLogFileDirectory=/soft/java/model/log -dDataSourceDirectory=
/soft/java/model/data -dModelSaveDirectory=/soft/java/model/data -lrepdb2=0/0
exit 0
#
如果是查看线程的数量,就必须使用pstree -a命令了,有的程序是以线程运行的,比如apache即可以工作在进程(perfork)模式下也可以工作在线程(worker)模式下
在维护Linux系统的时候经常需要查看服务的进程数量,下面以查看nginx进程为例:
1、[root@localhost ~]# pstree -a | grep cogtr|grep -v "grep"|wc -l
-a参数是展开子进程,grep -v "grep" 是去掉结果中带有grep的这一行
04.#调用关闭jboss进程脚本
05.stopMethodServer.sh
06.
07.#打印出当前的jboss进程:grep jboss查询的jboss进程,grep -v "grep" 去掉grep进程
08.jmsThread=`ps -ef | grep gdms | grep jboss | grep -v "grep"`
#grep -v "grep" 是去掉结果中带有grep的这一行
09.echo $jmsThread
10.
11.#查询jboss进程个数:wc -l 返回行数
12.count=`ps -ef | grep gdms | grep jboss | grep -v "grep" | wc -l`
13.echo $count
14.
15.sec=60
#设置60秒
16.#开始一个循环,以判断进程是否关闭
17.
18.for var in 1 2
19.do
20. if [ $count -gt 0 ]; then
21. #若进程还未关闭,则脚本sleep几秒
22. echo sleep $sec second the $var time, the JMS thread is still alive
23. sleep $sec
24. else
25. #若进程已经关闭,则跳出循环
26. echo "break"
27. break
28. fi
29.done
30.
-------------------------------------------------------------
请用shell写个脚本,当apache的进程数大于10的时候发邮件给运维部
#!/bin/bash
count=`ps -ef | grep [a]pache | wc -l`
if [ $count -gt 10 ]; then
mail -s 标题 mail@address.net <<!!
内容
.
!!
fi
###################
说明一下,count计算的时候,grep后面改成你真正的apache的进程名,[a]pache首字母加了个方括号是为了防止把grep本身的进程数也算进去。mail后面的标题,地址和内容改成你自己需要的内容。在内容的后面那个.不要漏掉。count=后面的引号是键盘上数字1左边那个重音符号,而不是单双引号那个引号。这个脚本有个前提,你本机的sendmail服务是可用的,否则这个脚本是发不出邮件的。至于sendmail服务,那就是另外的话题了。需要配置的话请google一下。
-------------------------
#详细列出(字符且项数不多)
for File in 1 2 3 4 5
do
echo $File
done
#对存在的文件进行循环
for shname in `ls *.sh`
do
name=`echo "$shname" | awk -F. '{print $1}'`
echo $name
done
#((语法循环--有点像C语法,但记得双括号
for((i=1;i<100;i++))
do
if((i%3==0))
then
echo $i
continue
fi
done
#从配置文件读取,并可以控制进程数量
MAX_RUN_NUM=8
cat cfg/res_card_partition.cfg |grep -v '^$'|grep -v "#" | grep -v grep |while read partition
do
nohup sh inv_res_card_process.sh $partition >log/resCard$partition.log 2>&1 &
while [ 1 -eq 1 ]
do
psNum=`ps -ef | grep "inv_res_card_process" | grep -v "grep" | wc -l`
if [ $psNum -ge $MAX_RUN_NUM ]
then
sleep 5
else
break
fi
done
done
# 三.循环控制语句
# break 命令不执行当前循环体内break下面的语句从当前循环退出.
# continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行
在shell中常用的是 for i in $(seq 10)
for i in *.txt