Shell

if

if [ "Z" \\> "A"]; then
    echo "Yes"
else 
    echo "No"
fi

for

for f in $(pwd | ls);
do
    echo $f
done

xml

# <test>value<test>
xmllint --xpath 'string(//testtag)' $tmpFileName
# output is 'value'

case

action=$1
case "$action" in
    "v1" )
    echo "v1"
    ;;
    * )
    ;;
esac

awk

awk 'NR==1{print}' #获取地N行
awk '{print $2}' #获取第N列
echo "a,b" | awk '{split($0, a, ",";print length(a)}'
netstat -an | awk -F' ' '$5 ~ /:2052$/' #目标port是2052的链接

sed

sed -n '$p' # 获取最后一行

tcpdump

tcpdump -vvv -i eth0 tcp port 8080 src ipaddr
tcpdump -i <interface> -s 65535 -w <file>

while

count=0
while true;
do
  if [ $count -lt 10 ];
  then
    let count++;
    echo "$(date) : $count"
    sleep 1;
  else exit 0;
  fi
done

snmptrap

#<https://support.nagios.com/kb/article/snmp-trap-how-to-send-a-test-trap-493.html>
snmptrap -v 3 -e 0x090807060504030201 -u test -a MD5 -A test1234 -x AES -X test1234 -l authPriv 172.16.2.2 '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
snmpget -v 2c -c demopublic test.net-snmp.org ucdDemoPublicString.0

java

#printf '0x' pid
printf '0x' 
top -H -p    #top -H -p pid
jstack -p |grep x

Services

nfs

#1. export local path
vi /etc/exports
/path 172.16.2.0/24(rw,sync)
#2. start service
service rpcbind restart
service nfs restart
exports -a
#3. client mount path
mount -t nfs ip:path target

LDAP

ldapsearch -x -D "cn=NGOSSldapadmin,ou=serviceAccount,o=Huawei" -H ldaps://172.16.2.2:636/ -w paswordstr -b "ou=users,o=data" |grep keyword

DB

mysqldump -t -u root -p db1 table1 -h172.2.2.2 --where="category='test'" --hex-blob --result-file=email_sched.sql 
mysqldump -t -u username -p db1 table1 -h172.2.2.2 --where="org_id='13'" --hex-blob --result-file=eusers-direct.sql
mysqldump -t -u root -p ngoss_pro ossmo --hex-blob --result-file=ipdevice.sql 
mysqldump -uroot -p test student > file.sql
mysqldump -ungoss_admin -p -h 172.20.19.87 db1 > db1.sql
# 导出指定表的数据
mysqldump -t db1 -u root -p --tables table1 >D:\\table1.sql
# 导出指定表的结构
mysqldump -d database -u username -ppassword --tables table_name1 table_name2 table_name3>D:\\db_script.sql
# 导出表的数据及结构
mysqldump  database -u username -ppassword --tables table_name1 table_name2 table_name3>D:\\db_script.sql
# 查看分区表
select partition_name part,partition_expression expr,partition_description descr,table_row from information_schema.partitions  where table_schema = schema() and table_name='ossalarmhistory';
SELECT PARTITION_NAME,TABLE_ROWS,PARTITION_EXPRESSION,PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='nms' AND TABLE_NAME = 'ossalarmhistory';

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data  from TABLES where table_schema='nms' and table_name='ossalarmhistory';

SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES  WHERE table_schema ='nms';

Security

#<https://unix.stackexchange.com/questions/159873/whitelist-source-ip-addresses-in-centos-7>
firewall-cmd --permanent --zone=public --add-source=192.168.100.0/24
firewall-cmd --permanent --zone=public --add-source=192.168.222.123/32

Ansible

 ansible -m copy -a "src=/home/sss.sh dest=/home/"
 ansible -m command -a "hostname" grouptag
 ansible -m command -a "bash /home/dir/check.sh"
 ansible -m shell -a "uname -a |grep 88" #shell allow pipeline operator
 ssh-copy-id -i /home/ossera/.ssh/id_rsa.pub [email protected] #拷贝公钥到目标机器

Docker

docker save mysql:5.7 -o mysql.tar
docker load -i mysql.tar
docker-compose  --- up|down

Kubenet

minikube

minikube start #start minikube
minikube image load # load docker local image to minikube env

deployment & pod

kubectl -n ns apply -f service.yaml # apply service
kubectl -n ns delete -f service.yaml
kubectl -n ns get svc -o wide
kubectl -n ns get pod -o wide
kubectl get pod -A
## log and event
kubectl -n tfs get events
kubectl -n tfs logs pod
kubectl logs -f
kubectl -n tfs logs -f  webuiservice-665cf6f946-f89x4 server

terraform