grep -A 1 '37050/MQMC/JSON/slb' lisx | grep 'response Status: 200 OK' | wc -l
抓包tcpdump -iany dst 10.51.253.74 and port 37050 -Avns0
做pluginmaven切换的时候知道的。 find . -name '*.commit.ora.sql'|xargs cat >> aa.sql
linux发送报文
统计多少个文件 ls | wc -l
$(cd $(dirname "$0"); pwd)与pwd dirname是相对路径 调用的脚本lisx.sh,内容如下
后调用的脚本如下
执行结果如下
这种就说明不是unix
整个命令会把文件所属组给重置了,文件权限也要检查一下。
unix与pc
set -e 执行的时候如果出现了返回值为非零,整个脚本就会立即退出 set +e:执行的时候如果出现了返回值为非零将会继续执行下面的脚本。
复制
查看环境变量 ps -ef| grep i2000
测试ip+端口是否通
抓包 tcpdump -iany dst 100.112.114.162 and port 162 -Avns0
替换字符串 替换简单字符 if [ "$ibs_https_ip" != "" ] && [ "$ibs_https_ip_bak" != "" ]; then sed -i s/${ibs_https_ip}/${ibs_https_ip_bak}/g $ibs_param fi 替换特殊字符 if [ "$ibs_https_path" != "" ] && [ "$ibs_https_path_bak" != "" ]; then sed -i "s#${ibs_https_path}#${ibs_https_path_bak}#g" $ibs_param fi
linux与运算, if [ "$ibs_https_ip_req" != "" ] && [ "$ibs_https_ip_req_bak" != "" ]; then echo "dddd" fi
sles-sp3:/usr/local/nginx/html/ylx # md5sum 50.exe 24a5d1bbb747926c4818aa51b86f5dc5 50.exe
return与exit return用于返回函数的结果集与java的return功能相等 exit用于结束当前shell
if语句 su - oracle -c "cat /home/oracle/bmstemp >/dev/null 2>&1" if [ $? -eq 0 ]; then 或 su - oracle -c "cat /home/oracle/bmstemp >/dev/null 2>&1" if [ $? -eq 0 ]; then 无论bmstemp文件中有无信息都会进入if
但是若在bmstemp文件中收不到ddd字符则不会进入if, install4.sh
执行结果
給变量赋值 errorEncode=$(su - oracle -c env |grep "NLS_LANG") defalutEncode="AMERICAN_AMERICA.AL32UTF8"
使用指定用户执行命令后退出 su - oracle -c "echo clientEncode=${clientEncode} > /home/oracle/bmstemp"
在shell脚本中加载文件中的函数或者参数(即执行了该脚本) . ${CURRENT_DIR}/../comm_lib . ${base_path}/../../setup/bms_install/install_shell/base.conf 该方式执行的脚本,是在当前shell中执行的。所以该脚本中加载的变量或函数可以在下面直接使用。 以该方式执行的脚本中必须要有第一行。 该方式执行效果与source命令执行效果一样
而sh hello.sh或者shell hello.sh命令执行的话,可以不必实现设定shell的执行权限,也不用写sh的第一行 因为是将hello.sh作为参数传给sh或bash命令的。这是不是hello.sh自己来执行,而是被人家调用执行。指定sh第一行更好 且该方法是在当前shell(称为父shell)开启的一个子shell环境,此shell脚本就是在这个子shell环境随即关闭,然后又回到父shell中即变量不可用共享。
linux定时任务 添加,查询,删除系统计划任务的指令。 [root@localhost ~]# crontab [选项] 选项: -e: 编辑crontab定时任务 -l: 查询crontab任务 -r: 删除当前用户所有的crontab任务 linux 利用crontab添加定时任务_crontab定时任务前面加#-优快云博客
重启Linux定时任务-crond 可以分为两种情况:
1.在系统中有service这个命令时: 这个命令在red hat当中常用,有的linux发行版本中没有这个命令. $ service crond start //启动服务 $ service crond stop //关闭服务 $ service crond restart //重启服务
2.linux发行版本没有service这个命令时: /etc/init.d/cron stop /etc/init.d/cron start
引号 单引号双引号,基本上类似于编程语言中的引用字符串 区别在于单引号’ '内剥夺所有字符的特殊含义,所有字符都是单纯的字符串而没有特殊功能,比如$取参数等命令都是无效的 而双引号" "中除了字符串,特殊字符是没有被转义的,$等特殊字符一样可以使用其功能。 反引号``是命令替换,通常用于把命令输出结果传给入变量中,类似变量后$=(命令)
查看内存的使用 df -ah
捕获异常 function rollback() { base_path="$(cd "$(dirname "$0")"; pwd)" cp ${base_path}/classbak/BmsSubSystemAssignRegisterMessage.classbak /business/sage.class if [ "$?" != "0" ]; then return 3 fi }
rollback if [ "$?" = "0" ]; then echo "Upgrade finish, please restart bms." else echo "Upgrade fail" fi
调试shell
将目录文件copy到另一个目录
rsync -avzu --progress root@10.157.206.164:/home/nms/jdk/jre/lib /home/nms/jdk/jre
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
批量修改文件权限 find . -name *.usl|xargs chmod 640
find命令
递归查找
修改linux默认的加密方式 vi /etc/default/passwd 红色框就是加密方式。
修改用户密码后可在这里查看到加密后的密码
删除用户 userdel -r haha
修改密码 echo "lisx@123" |passwd --stdin lisx1
增加用户没有指定密码:echo ”密码“|passwd 用户 --stdin
echo "user:password"| chpasswd
创建用户
登录用户 ssh lisx1@10.183.175.64
linux自带的加密
echo -n "lisx20191025"|openssl enc -aes-256-cbc -a -e -pass pass:"geren@63941" -nosalt;
自带的解密
echo "QDXw8/WE3equXwz5D/6X8g=="|openssl enc -aes-256-cbc -a -d -pass pass:"geren@63941" -nosalt
查看某个端口是否被打开
查看告警转换器是哪个用户启动的 ps -ef|grep switch
查询文件中有多少行 cat domain_black_list.xml |grep domain -c
只能在物理机上运行,云环境不行 mpstat -P ALL 1 mpstat -P ALL
查看1115文件里面有多少行group
查看文件多少兆 ll -h
抓包命令(cache bms上运行该命令可以看到下发的1115/1085报文内容) tcpdump -iany -Avvnns0 port 8588
给文件切换用户的权限 chown -R bms:icache dao/ chown -R bms:icache function/
给文件设置权限 chmod -R 700 dao/ chmod -R 700 function/
查找文件
通过跳板机上传文件到指定目录 登录跳板机:ssh -l 用户名 主机名(ip) 上传那文件到指定服务器:rsync /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下 linux服务器之间传输文件的四种方式_两台服务器之间传输文件-优快云博客
查看版本号
bmsr从起tomcat
查看内存:df -ah
找到tomcat