赞
踩
目录
df 查看磁盘空间
ls -al 显示所有文件
ls -ltr 按照时间顺序排列
passwd 修改当前用户的密码
find . -name log4j.xml 查找当前目录及其子目录下的log4j.xml文件
find . -name *log.20* |xargs rm 找到含有log.20的文件并删除
tail –n 20 文件名 查看文件的最后20行mkdir –p /shareoibs/receive/udp/chrm 创建多层目录
find . -mtime +3 -name '*.log' -exec rm -rf {} \; 删除3天前的log文件find . -mtime +3 -name "**.log*"|xargs rm -rf;
scp sql_BIBP-OIBS_V01.6F_B15.sh oibspl@22.188.35.163:/oibspl/ywx/Version_F/sql_install 将本机上的文件传送到另一台服务器器上去
ls -l|grep oibs 列举包含oibs字符串的文件夹
查看当前目录的子目录占用空间
Linux du -sh ./*
AIX du -sg ./*
find . -name ‘*20*’ -exec rm -f {} \; (引号是英文的) 从当前目录找到name包含20的文件执行rm -f命令
使用-exec参数必须使用分号结尾
因为;在bash环境中有特殊意义,所以用\来转义
find . –mtime +30 -name ‘*20*’ -exec rm -f {} \; 删除所有30天前的带20的文件
ls -l --fulltime 查看文件具体时间,精确到秒
top 实时查看内存
free 查看此时的内存
cat -n netmap.cfg |grep 22.188.182.150 查找文件里面的ip地址
tail –n 20 文件名 查看文件的最后20行
查找所有日志中的关键词
find ./ -name "log1Bii_cust1.*"|xargs grep "a116146637" |wc -l
查找关键词并统计行数
cat log1Bii_cust1.2018-12-23-11|grep "a116146637"|wc -lrm -f !(A) 保留A,删除其他
rm -f !(A|B) 保留A B,删除其他ls |grep -v A |xargs rm -f 保留A,删除其他
查看cpu个数
lscpu
查看内存大小
free
env或者printenv查看系统全局环境变量
cat .bash_profile 查看当前用户的环境变量当你登录Linux系统时,bash shell会作为登录shell启动。登录shell会从5个不同的启动文件里
读取命令:
/etc/profile
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_login
$HOME/.profile
/etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行
这个启动文件。
用途一:自定义命令
在.bash_profile文件里面增加以下
alias l='ls -l'
alias ll='ls -lrt'
alias dir='ls -la'
alias war='cd /was/IBM/WebSphere/AppServer/profiles/Custom01/installedApps/T1RBOCNETAP01Cell01'即可使用自定义命令l、ll、dir、war
netstat -Aan |grep 13579 //获取 f1000e000554bbb8
f1000e000554bbb8 tcp4 2723 0 22.188.137.93.13578 22.188.152.43.34300 CLOSE_WAIT
rmsock f1000e0005548bb8 tcpcb //获取进程号 23462056 udp 用日
the socket 0xf1000e0005548808 is being held by proccess 23462056 (CmoFrSock).
ps -ef|grep 23462056 //也可以直接kill掉进程
netstat -tunp |grep 22
ps -aux|grep 22netstat -apn | grep 22
netstat -apn
Win查看端口占用
netstat -ano | findstr “1099” 查出进程ID
tasklist | findstr “10136” 根据进程ID查出属于哪个进程
taskkill /pid 10136 -f 强杀进程
uname 查看系统名称
df -gt 查看磁盘文件系统
ESC+k 查看上一条命令
ESC+j 查看下一条命令
Ctrl+c 退出当前执行的命令,中断程序的执行
Ctrl+d 退出当前用户
alt+tab 切换到上一个窗口
win+tab 显示所有窗口
grep -i
grep -v查看Oracle的home路径 、Oracle版本
echo $ORACLE_HOME
which oracle
查看java home路径 、java版本
echo $JAVA_HOME
which java这种都可以用 echo $LANG 打印出来
#4.客户化ORACLE_HOME、LIBPATH 、PATH、NLS_LANG、LANG
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db
export LIBPATH=$LIBPATH:/oracle/cli32/lib32:/oracle/product/11g/rdbms/precomp/public
export PATH=$PATH:/oracle/product/11g/rdbms/precomp/public:/oracle/product/11g/rdbms/bin
export NLS_LANG=American_America.AL32UTF8
export LANG=zh_CN.UTF-8chage -l ipps 查看ipps用户密码有效期的信息
-c(或--create)是创建文件的意思,解压的时候不需要创建新文件,所以不需要加c
-v(或--verbose)是查看详细信息,显示执行过程。如果不想看,可以不用加
-f(或--file)是用于指定生成的文件名
-x(或--extract)是从压缩文件中还原原文件,也就是解压
-t(或--list)列出文件内容
-z 压缩成.gz文件
-J 压缩成.xz文件
-j 压缩成.bz2文件
-可以省略
总结:
解压缩成.tar文件
tar -cvf test.tar test/ test2/ 压缩成tar文件
tar -tvf test.tar 查看文件列表
tar -xvf test.tar -C hhh 解压到指定目录hhh。不加-C默认解压到当前目录
解压缩成.gz文件
tar -zcvf test1.tar.gz test/ test2/ 压缩成gz文件
tar -tvf test1.tar.gz 查看文件列表
tar -zxvf test1.tar.gz -C hhh 解压到指定目录hhh
解压缩成.xz文件 (强烈推荐!)
tar -Jcvf log.tar.xz *.log 将所有log文件压缩成xz文件 注:大写的J
tar -tvf log.tar.xz 预览xz文件列表
tar -Jxvf log.tar.xz -C hhh/hh 解压到指定目录hhh/hh
压缩大小对比
-rw-r--r-- 1 vapsfc vapsfc 5130240 Dec 2 10:20 test.tar
-rw-r--r-- 1 vapsfc vapsfc 1703916 Dec 2 10:36 test1.tar.gz
-rw-r--r-- 1 vapsfc vapsfc 1194652 Dec 2 10:40 test2.tar.xz
从压缩后的文件大小来看,xz格式压缩率最好
打包和压缩不一样,打包只是将文件整合在一起,并不会压缩
打包tar
压缩,调用gzip
tar -cvf test.tar teIXst/ test2/ 压缩成tar文件
tar -tvf test.tar 查看文件列表
tar -xvf test.tar -C hhh 解压到指定目录hhh。不加-C默认解压到当前目录tar -cvf - 需要备份的文件夹名 | gzip > test.tar.gz 压缩成test.tar.gz文件 -和需要备份的文件夹名之间有空格
gunzip -c test1.tar.gz | tar -xvf - -C hh 解压到hh文件夹
(常见于win系统,linux也能用)
zip test.zip test.txt 压缩文件
zip -r test.zip ./test 压缩目录,将当前目录下的test目录压缩成test.zip文件unzip test.zip 解压到当前目录
unzip -d /temp test.zip 解压到/temp目录
unzip -o test.zip 解压并覆盖原文件
unzip -n test.zip 解压并不覆盖原文件
unzip -l test.zip 查看zip文件内容
unzip -t test.zip 检查zip文件是否损坏
-rw-r----- 1 bocnet bocnet 111192141 Dec 02 15:17 test.zip
-rw-r----- 1 bocnet bocnet 94892817 Dec 02 15:19 test1.tar.gz
-rw-r----- 1 bocnet bocnet 185077760 Dec 02 15:20 test2.tar
jar -cvfM0 igtb-web-cas.war -C /igtb/app_bak/rework/igtb-web-cas
jar -xvf /igtb/app_bak/rework/igtb-web-cas/igtb-web-cas.war
jar -xvf OIBS_PAY.war 解压OIBS_PAY.war到当前目录
jar -cvfM0 OIBS_PAY.war . 将当前目录所有文件压缩成OIBS_PAY.war
VIM编辑器的使用
命令状态下:(按ESC)
R 替换
dd 删除一行
O 在前面增加一行
o 在后面增加一行shift insert
清空所有内容 :%d
编辑状态下(按i)
去^M:
vi状态下使用正则表达式替换
%s/^M//g ^要用ctrl+V M用Ctrl+M 代替
cicsmgr –v stop region OIBSIE
cics:cicsmgr stop OIBSIE
cicsmgr –v stop region OIBSIE乱码 export LANG=UTF-8
冷启动 cicsmgr -v start region OIBSAL StartType=cold
cicsmgr –v stop region OIBSIE
概念与对象:
消息、队列、队列管理器、通道是 MQ 中最重要的概念和对象。
1、 消息是 WebSphere MQ 中最小的概念,本质上就是一段数据,它能被一个或多个应用 程序所理解,是应用程序之间传递的信息载体。消息可以大致分成两部分: 应用数据体和 消息数据头。
2、 队列
我们可以简单地把队列看成一个容器,用于存放消息。队列按其定义可分成本地队列、 远程队列定义、别名队列定义、模型队列定义。远程队列定义和别名队列定义只是一个队列定义,指向另一个队列实体。远程队列定义指向的是其它队列管理器中的队列,而别名队列指向的是本地队列管理器中的队列。
用mqm用户登录mq服务器
mqm/Mima-001
dspmq
runmqsc IPPS_CTIS_PSN
dis chs(*)
reset CHANNEL(IPPS.TO.CTIS.CHL)
start CHANNEL(IPPS.TO.CTIS.CHL)
dis chl(*)
end 退出
dis chs(IPPS.TO.CTIS.CHL) all
reset chl(IPPS.TO.CTISP.CHL)
dis listener(*)
dis LISTENER(SYSTEM.DEFAULT.LISTENER.TCP)
dis LISTENER(IPPS_CTIS_LSR_PSN)
验证连通性:
cd /opt/mqm/samp/bin ./amqsput ./amqsget
./amqsget QR_IPPS_CTIS_ENT IPPS_CTIS_ENT
重置通道 stop reset start
网关:
节点:
通道:
如果程序连接时爆出2035错误,则可以做如下修改
**ALTER QMGR CHLAUTH(DISABLED)**
**ALTER QMGR CONNAUTH(')**
**REFRESH SECURITY TYPE(CONNAUTH)**
ansible -i iv_oibs "~.*oibs" -m raw -a "pwd"
ssh-keygen -q -m PEM -t rsa -b 4096 -f ~/.ssh/id_rsassh-keygen -q -m PEM -t rsa -b 4096 -C 'bocop-sap-dev0' -f sshkey/bocop-sap-dev0-id_rsa
两次回车cp /opt/ansible/playbook/pb-keyop.yml ./
ansible-playbook -i iv_sap -e 'hosts=all dev=true' pb-keyop.yml
aix机器只能只用raw模块,其他用不了
ansible -i iv_bocnet "aix" -m raw -a "pwd" 可以
ansible -i iv_bocnet "aix" -m shell -a "pwd" 不行
ansible-playbook -i iv_bocnet pb-df.yml
- ywx9031@7236326b328e:~/ansible/BOCNET-G-IFS$ more pb-df.yml
- - hosts: x86
- gather_facts: False
- tasks:
- - name: start check script
- shell: ". ~/.bash_profile && df $HOME "
- register: rs
- - debug: var=rs.stdout_lines
-
- - hosts: all
- gather_facts: False
- tasks:
- - name: start check script
- raw: "df /bocnet "
- register: rs
- - debug: var=rs.stdout_lines
-
- - hosts: aix:x86
- gather_facts: False
- tasks:
- - name: start check script
- raw: "df /bocnet "
- register: rs
- - debug: var=rs.stdout_lines
ansible -i iv_ipps ipps@22.188.79.204 -m shell -a "touch test.txt" 操作一个ip地址
ipps@22.188.79.204 ansible_ssh_host=22.188.79.204 ansible_ssh_user=ipps ansible_ssh_pass=Mima_002
grep 'ssh_host22' iv_* 搜索iv开头的文件中带有ssh_host22字符的
注意:
ansible调用脚本如果只能停止,不能启动,需要sleep几秒钟
ansible -i iv_bocnet bocnet@22.188.129.200 -m raw -a 'cd bocnetAuto;pwd;sh ./startup_salary.sh;sleep 10'
-rwxr-xr-x 1 ywx9031 ansible 48987 May 11 15:26 iv_ipps_k_p*
-rwxr-xr-x 1 ywx9031 ansible 49109 May 11 16:02 iv_ipps_k_p*
一小时
自动shell脚本
---
ssh sap@22.87.101.237
sed s/oibssg/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/g ./log4j.xml > new_log4j.xml 将log4j.xml文件中的oibssg改成yyyyyyyyyyyyyyyyyyyyyyyy,并生成到新的文件new_log4j.xml,不能直接程程到原文件
find –name 'log4j.xml' |xargs perl –pi –e 's|被替换的字符串|替换后的字符串|g'
去掉结尾的 ^M
sed 's/\^M$//g' aa.txt
sed s/oibsde/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/g ./CD.CONF
sed s/${owner}/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/g ./CD.CONF
cat CD.CONF|grep 'owner='|cut -c 10-
#以=为分隔符,取后面的一部分显示
oldvar=`cat CD.CONF|grep 'owner='|cut -d '=' -f2`
sed s/$oldvar/yiwenxinyiwenxin/g ./CD.CONF > new_CD.CONF
mv new_CD.CONF CD.CONF
sed -i本来可以直接修改文件内容,但是aix不支持
oldvar=$(cat CD.CONF|grep 'owner='|cut -d '=' -f2)
send "echo $oldvar\r"
send "sed s/$(cat CD.CONF|grep 'owner='|cut -d '=' -f2)/$bank/g ./CD.CONF > new_CD.CONF\r"
sed s/$(echo|cat CD.CONF|grep 'owner='|cut -d '=' -f2)/yyyyyyyyyyyyyyyyyyyyyy/g ./CD.CONF > new_CD.CONF
写好的sh脚本采用自动格上传,不要二进制
was_BackstageScript_Install
#send "sed s/$(echo|cat CD.CONF|grep 'owner='|cut -d '=' -f2)/$bank/g ./CD.CONF > new_CD.CONF \r"
#send "mv new_CD.CONF CD.CONF\r"
send "sed s/$(cat /shareoibs/$bank/oibszpay_share_dir/Web/channel/CD/Config/CD.CONF|grep 'owner='|cut -d '=' -f2)/$bank/g /shareoibs/$bank/oibszpay_share_dir/Web/channel/CD/Config/CD.CONF > new_CD.CONF && mv new_CD.CONF CD.CONF \r"
1、vim打开,命令行模式,输入 /关键字
2、cat test.log |grep ERROR 查看当前目录下test.log文件中的ERROR关键字
3、grep -r ERROR 文件名或目录名 递归查找某目录下的所有文件包含ERROR关键字
显示ERROR报错的上下文
cat 文件名 | grep -C 20 '关键字' 显示文件里匹配的关键字的上下20行
sed -n '/2024-04-10 22:16:21/,/2024-05-10 22:16:21/p' Portal.log
两个时间点必须存在,否则查不到
sed -n '/2024-04-10 22:10:*/,/2024-05-10 22:16:*/p' Portal.log 查询22:10到22:16之间的日志
sed -n '/2024-04-10 22*/,/2024-05-10 23*/p' Portal.log 查询22到23点之间的日志
查询某个日志的某个时间段,带有POST的日志行
sed -n '/2024-04-10 22:16:21/,/2024-05-10 22:16:21/p' Portal.log |grep POST
sed -n '/2024-04-10 22:16:21/,/2024-05-10 22:16:21/p' Portal.log |grep POST > hh.log
cat /etc/group 查看属组
`rpc:x:32:
rpcuser:x:29:
nfsnobody:x:65534:
ipps:x:1010:
mqm:x:5001:root,ipps
moniftp:x:5002:`/etc/group文件有4个字段:
分别是组名、组密码、组ID、属于该组的用户列表
Linux中,权限分为3种
r:读,4
w:写,2
x:执行,1
777权限:(4+2+1)(4+2+1)(4+2+1),可读可写可执行,最高权限
第一个7:文件属主(拥有者)可读可写可执行
第二个7:属组成员(所属组)可读可写可执行
第三个7:其他用户(组外)可读可写可执行
./test.sh &
在非控制台下运行脚本
nohup ./test.sh & 关闭窗口不影响
jobs -l 查看正在运行的后台任务
./test10.sh > test10.out & 将打印内容输出到test10.out文件中,不在屏幕上显示
ps -ef
第一列:UID,用户
第二列:进程ID
第三列:父进程ID
UID:启动这些进程的用户。
PID:进程的进程ID。
PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
C:进程生命周期中的CPU利用率。
STIME:进程启动时的系统时间。
TTY:进程启动时的终端设备。
TIME:运行进程需要的累计CPU时间。
CMD:启动的程序名称。
expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log
例如:
exp evens/mima_002
tables=daily_clean_task
file=/evens/tmp/expdmp/BOCNET_T1_daily_clean_task_20220427.dmp log=EVENS_T1_daily_clean_task_20220427.log
imp evens/mima_002 file=/evens/tmp/expdmp/BOCNET_T1_daily_clean_task_20220427.dmp log=/evens/tmp/expdmp/imp_BOCNET_T1_daily_clean_task_20220429.log full=Y ignore=Y
注:full=y 是导入文件中全部内容
ignore=y相当于,如果没有的表,创建并导入数据,如果已经有的表,忽略创建的,但不忽略导入
1、数据量很大
- # 导出命令
- expdp evens/pwd_002 directory=dmp_dir dumpfile=T1_evens_$DATE.%U.dmp logfile=T1_evens_$DATE.log PARALLEL=4 cluster=N
-
- #导入命令
- impdp evens/pwd_002 directory=dmp_dir parallel=4 dumpfile=T1_evens_20220221.01.dmp,T1_evens_20220221.02.dmp,T1_evens20220221.03.dmp,T1_evens_20220221.04.dmp logfile=imp_evens_20220221.log exclude=statistics cluster=N
2、数据量较小
- # 导出命令
- exp props/mima_002 file=/evens/tmp/expdmp/EVENS_T1_PROPS_$DATE.dmp log=/evens/tmp/expdmp/EVENS_T1_PROPS_$DATE.log
-
- exp ticket/mima_002 file=/evens/tmp/expdmp/EVENS_T1_TICKET_$DATE.dmp log=/evens/tmp/expdmp/EVENS_T1_TICKET_$DATE.log
-
- # 导入命令
- imp props/mima_002 file=/evens/tmp/expdmp/EVENS_T1_PROPS_20220221.dmp log=/evens/tmp/expdmp/imp_props_20220221.log full=Y
-
- imp ticket/mima_002 file=/evens/tmp/expdmp/EVENS_T1_TICKET_20220221.dmp log=/evens/tmp/expdmp/mp_TICKET_20220221.log full=Y
Linux:
sudo -u nginx /bin/vim /nginx/conf/nginx.conf
/nginx/sbin/nginx -s reload
Windows CMD:
start nginx.exe
nginx.exe -s stop
重新载入 nginx.exe -s reload
Windows PowerShell:
start nginx
添加evens用户,指定主目录
useradd -d /evens/ -m evens
设置密码
passwd evens
# 赋予sudo权限
chmod u+w /etc/sudoers
vim /etc/sudoers (或者直接用命令visudo)
找到以下位置
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
添加
evens ALL=(ALL) ALL
evens ALL=(ALL) NOPASSWD:ALL(设置不需要密码)
# 加入root组
usermod -g root evens
登录后台,执行命令登录数据库
mysql -h 22.222.22.22 -P 15511 -uevens -pNmSql#2022!
进入数据库后,先输入
tee /evens/log/mysql.log (文件不存在的话会自动创建)
输入SQL命令
比如 show databases等等,都会记录到日志文件中
当你不想再记录日志时,可以用notee命令,之后的操作将不会写入日志文件。
也可以执行脚本持续输出日志
source test.sql;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。