当前位置:   article > 正文

Linux&AIX常用命令(学会即上岗)_aix命令

aix命令

目录

基础命令

环境变量

找到占用端口的进程

AIX

Linux

AIX系统命令

win快捷命令

grep命令

tar   解压缩

Linux系统(常用)

AIX系统解压缩

zip命令

jar命令

压缩

解压

vim

cics  

mq

Ansible   自动化运维

查看日志

查找文件中的关键字

查看某一时间段的日志

精确查询

模糊查询

结合grep查询

导出日志

linux其他

以后台模式运行脚本

备份与恢复oracle数据库

(一)指定表

1、备份指定表

2、恢复指定表数据

(二)整个数据库


 

基础命令

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 -l

rm -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

 

找到占用端口的进程

AIX

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掉进程

Linux

netstat -tunp |grep 22
ps -aux|grep 22

netstat -apn | grep 22
netstat -apn

Win

Win查看端口占用

netstat -ano | findstr “1099”   查出进程ID

tasklist | findstr “10136”      根据进程ID查出属于哪个进程

taskkill /pid 10136 -f         强杀进程

AIX系统命令

uname  查看系统名称

df -gt  查看磁盘文件系统

ESC+k   查看上一条命令 

ESC+j    查看下一条命令

Ctrl+c   退出当前执行的命令,中断程序的执行

Ctrl+d   退出当前用户

win快捷命令

alt+tab  切换到上一个窗口

win+tab  显示所有窗口

grep命令

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-8

chage -l ipps   查看ipps用户密码有效期的信息


tar   解压缩

-c(或--create)是创建文件的意思,解压的时候不需要创建新文件,所以不需要加c
-v(或--verbose)是查看详细信息,显示执行过程。如果不想看,可以不用加
-f(或--file)是用于指定生成的文件名
-x(或--extract)是从压缩文件中还原原文件,也就是解压
-t(或--list)列出文件内容

-z  压缩成.gz文件
-J   压缩成.xz文件
-j   压缩成.bz2文件

-可以省略

总结:

Linux系统(常用)

 解压缩成.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

AIX系统解压缩

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文件夹

zip命令

(常见于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命令

压缩

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

VIM编辑器的使用

命令状态下:(按ESC)

R        替换
dd     删除一行
O       在前面增加一行
o       在后面增加一行

shift insert

清空所有内容    :%d

编辑状态下(按i)

去^M:
vi状态下使用正则表达式替换
%s/^M//g               ^要用ctrl+V      M用Ctrl+M     代替


cics  

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


概念与对象:

消息、队列、队列管理器、通道是 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   自动化运维

ansible -i iv_oibs "~.*oibs" -m raw -a "pwd"
ssh-keygen -q -m PEM -t rsa -b 4096 -f ~/.ssh/id_rsa

ssh-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

  1. ywx9031@7236326b328e:~/ansible/BOCNET-G-IFS$ more pb-df.yml
  2. - hosts: x86
  3.   gather_facts: False
  4.   tasks:
  5.       - name: start check script
  6.         shell: ". ~/.bash_profile && df $HOME "
  7.         register: rs
  8.           - debug: var=rs.stdout_lines
  9. - hosts: all
  10.   gather_facts: False
  11.   tasks:
  12.       - name: start check script
  13.         raw: "df /bocnet "
  14.         register: rs
  15.       - debug: var=rs.stdout_lines
  16. - hosts: aix:x86
  17.   gather_facts: False
  18.   tasks:
  19.      - name: start check script
  20.         raw: "df /bocnet "
  21.         register: rs
  22.            - 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点之间的日志

结合grep查询

查询某个日志的某个时间段,带有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

 

linux其他

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:启动的程序名称。

备份与恢复oracle数据库

(一)指定表

1、备份指定表

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

2、恢复指定表数据

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、数据量很大

  1. # 导出命令
  2. expdp evens/pwd_002 directory=dmp_dir dumpfile=T1_evens_$DATE.%U.dmp logfile=T1_evens_$DATE.log PARALLEL=4 cluster=N
  3. #导入命令
  4. 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、数据量较小

  1. # 导出命令
  2. exp props/mima_002 file=/evens/tmp/expdmp/EVENS_T1_PROPS_$DATE.dmp log=/evens/tmp/expdmp/EVENS_T1_PROPS_$DATE.log
  3. exp ticket/mima_002 file=/evens/tmp/expdmp/EVENS_T1_TICKET_$DATE.dmp log=/evens/tmp/expdmp/EVENS_T1_TICKET_$DATE.log
  4. # 导入命令
  5. imp props/mima_002 file=/evens/tmp/expdmp/EVENS_T1_PROPS_20220221.dmp log=/evens/tmp/expdmp/imp_props_20220221.log full=Y
  6. imp ticket/mima_002 file=/evens/tmp/expdmp/EVENS_T1_TICKET_20220221.dmp log=/evens/tmp/expdmp/mp_TICKET_20220221.log full=Y

 

 重启nginx

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

 Linux系统使用root用户新建应用用户

添加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

后台执行SQL并输出到日志文件 

 登录后台,执行命令登录数据库

mysql -h 22.222.22.22 -P 15511 -uevens -pNmSql#2022!

进入数据库后,先输入

tee /evens/log/mysql.log (文件不存在的话会自动创建)

输入SQL命令

比如 show databases等等,都会记录到日志文件中

当你不想再记录日志时,可以用notee命令,之后的操作将不会写入日志文件。

 

也可以执行脚本持续输出日志

source test.sql;

0338c7ce879c46faac673ccd26ba657a.jpg

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/92205
推荐阅读
相关标签
  

闽ICP备14008679号