包含标签 shell articles

shell脚本中${@:2}的含义

在看网上比较专业的Dockerfile的启动脚本中(ENTRYPOINT对应的启动文件)中经常会看到${@:2}这样的写法。该变量的用法有点类似于python中数组的切片,这里显示的是所有传参中,从第二个参数开始到结尾的所有参数的集合,其就是对$@变量的切片。 一、$@释义 看下一段……

Continue reading

NAS数据的自动采集

一、设计 公司设备较多,有时需要匹配一些设备之间的关系。这里以NAS存储和主机之间的关联关系。存储都分了那些lun,给了哪些主机使用?理清这些关系如果全靠纯手工来做是比较繁琐的。这时候可以借助自动化工具+采集脚本,自动完成入库操作即可。定期的跑下任备就行了。 使用df -t nfs输出并排……

Continue reading

shell实现urlencode和urldecode

一、问题描述 先说下问题背景,最近在写的一个程序在通过restful API 在以form方式post提交时,发现其中的特殊符号无法提交进行后台,后台这边报错error on parse multipart form array: invalid URL escape “%”,而后台数据查询该条数据的该项值没有录入。这里需要传入的数据其实就是df 输出的数据,这里直接通过cu……

Continue reading

shell实现hp刀片ilo地址配置

一、问题背景 HP刀片在使用KVM远程console管理过程中,要求刀片配置的ILO地址和HP OA地址在同一网段。由于IP地址资源紧张,刀筐OA口默认配置上了地址,刀片没有配置,都是使用的时候临时配置。所以一旦物理机出现问题,想要通过远程管理口查看主机所处的状态就比较麻烦。先要通过……

Continue reading

shell实现netmask掩码和cidr掩码位转换

在写一个脚本时需要实现掩码位和掩码之间的转换,想简单的通过shell 实现,在openwrt程序上刚好有此脚本,内容如下: 1#!/bin/bash 2# code from www.361way.com 3mask2cdr () 4{ 5 # Assumes there's no "255." after a non-255 byte in the mask 6 local x=${1##*255.} 7 set -- 0^^^128^192^224^240^248^252^254^ $(( (${#1} - ${#x})*2 )) ${x%%.*} 8 x=${1%%$3*} 9 echo $(( $2 + (${#x}/4) )) 10} 11cdr2mask () 12{ 13 # Number of args to shift, 255..255, first non-255 byte, zeroes 14 set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 %……

Continue reading

MySQL检测、读写、连接shell脚本

1.检测MySQL是否可用 1# cat checkmyql.sh 2 3MYSQL_PING=`/usr/local/mysql/bin/mysqladmin -u root -p123123 ping` 4MYSQL_OK="mysqld is alive" 5 6if [[ "$MYSQL_PING" != "$MYSQL_OK" ]] 7 then 8 echo "mysql not ok" 9 service mysqld restart 10 else 11 echo "mysql is ok" 12fi 13 14# 执行 15chomod +x checkmyql.sh 16./checkmyql.sh 2.实时查看MySQL连接数 本脚本每2秒检测一次Msql并发连接数,可以将脚本设置为开机启动脚本,或在特定时间执行,以满足Myql数据库的监控要求,查看Myaql……

Continue reading

time的结果输入到文件

同事在写一个脚本的时候,在将time获取的执行时间结果输出到文件时,发现无法将结果输入到文件。通过测试发现可以通过如下方法实现time 结果输入到文件: 1{ time sleep 1 ; } 2> time.txt 2{ time sleep 1 2> sleep.stderr ; } 2> time.txt 3(time ls) > outfile 2>&1 4(time ls) > ls_results 2> time_results 5/usr/bin/time -o time.txt sleep 1 Note: some shells (e.g., bash(1)) have a built-in time command that provides less functionality than the command described here. To access the real command, you may need to specify its pathname……

Continue reading

shell字符串截断、切片与默认值

在写一个简单的脚本的时候,想用到切片功能,在python里实现非常简单,也非常好用 。印象中shell 也可以实现,查了下,发现自己之前就做过shell 字符串截断和切片的总结:shell字符串操作小结 。这里再细化下。 一、字符串切片 语法:${variable_name:start_po……

Continue reading

随机生成MAC地址的N种方法

进期准备在virt cli管理下的KVM增加一个模板脚本,用于主机的快速安装与部署。这里就涉及到mac地址的自动生成、uuid/Guid值的生成、主机名的自动更改等问题。本文着重介绍下N种自动生成MAC地址的方法。 一、shell生成法 shell生成的方法是最多的的,同时也感觉也是最……

Continue reading

Bash脚本15分钟进阶指导

首先声明这是网上摘来的。这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT)。这里是一个修订和扩增版本。 脚本安全 我的所有bash脚本都以下面几句为开场白: 1#!/bin/bash 2set -o nounset 3set -o errexit 这样做会避免两种常见的问题: 引用未定义的变量(缺省值为“”) 执行失败的命令被忽略 需要注意……

Continue reading

Latest articles

Categories

Tags

ACL AD AES AI Alpine Android Anpic Ansible Apache Apm Apparmor Appfog Apr Apt-Get Aria2 Array Atlassian Atop Audit Awk AWS Awstats Axel Azure Backdoor Backup Bamboo Bash Bat Benchmark Bigdata Bin Bind Bitwise Blockchain BMC Book Bootstrap Brocade Bsd C1000 Cache Capistrano Catlog CDH5 Centos Centos7 Chatops Chattr Check_mk Checkinstall Cisco CL210 Clickhouse Cloud Cloud-Desktop Cmdb Cms Cobbler Collectd Comm Compress Confd Conver Corosync Cpu Crontab Crunchbang Css Curl C语言 Date DDOS Decode Dell Desktop Devops Df Dhcp Diff Diskpart DISTINCT Django DNS Docker Dos2unix Dpkg Drupal Duckdb EKS ELK Etcd Excel Fail2ban Fastcgi Fdisk Fiddler Find Firewalld Flask Flvtool Ftp Function Fuser GCP Geek Ghost Gin Git Github Gitlab Glances Glusterfs Go Godaddy Golang Google Gooupadd Grafana Graphviz Gravatra Grep Grub2 Hadoop Haproxy Hardware HBA HCIE Heartbeat Helm Hexdump Hhvm History Hotspot Html Http/Html/Web Http/Html/Web Httplogs Https HttpWatch Huawei Huaweicloud Hugo IBM Icmp Iconv Ifconfig IIS InfluxDB Ingress InnoDB Inotify Iopp IOS Ipmitool Iptables Iredmail Iscsi Isito It-News Java JavaScript Jdk Jenkins Jinja2 Jira Join Joomla K3s K8s Kdump Keepalived Kernel Kingate KVM Lamp Last Leetcode Lib Linux Linux高级篇 Ln Ls Lsi Lsof Lvm Lvs Mac Mail Man Mark Markdown Matplotlib Maven Memcached Microservice Mimikatz Mkdocs Mkpasswd Mmonit Mod_jk Mongodb Monit Monitor Mono Moodle Mosh Mount Mplayer Mpm Mrtg Mtr My.cnf Mysql Mysqlbinlog Mysqld_multi MySQLdb Mysqldump Mysqlhotcopy Nagios Nc Nethogs Netlify Nexus Nfs Nginx Nmon Nocatlog Node.js Nrpe Ntfs Ntop Ntp Obs Ocr Open-Falcon Openbox Opencv Openldap OpenResty Openssl Openstack Oracle Oswatch Paas Pacemaker Pam Pandas Parted Pcp Pcre Pdf Percona Perl Pexpect Pgrep Php Php-Fpm Ping Plsql Develope PM Postfix PostgreSQL Powershell Prettify Proc Prometheus Puppeteer Pushd Pwgen Pxe Pyecharts Python Python模块 QoS Radmin Raid Rdesktop Read Redhat Redis Redmine Regex Rh134 RH318 RH442 RHCA RHCE Rhel7 Rhel8 RHEV Rm Rman Rootkit Route Rpm Rpmforge Rrdtool RSA Rsync Rsyslog Safe Saltstack Samba Scapy Screen SecureCRT Sed Selenium Selinux Seo Seq Session Set Shc Sheepdog Shell Shopt Sitemap Skydns Smokeping Snffier Snmp Socket Soft Sort Spider Sql Sqlserver Squid SRE Ss Ssh Sshpass Statuscode Strace Strings Su SublimeText2 Sudo Suse Svn Sysbench Syslog-Ng Sysstat Systemd T Tar TC Tcpcopy Tcpdump Tech Telecom Telnet Tencentcloud Tengine Test Testlink Threads Time Tmux Tomcat Touch Tr Tsar Twisted Ubuntu Udev Ulimit Unix Unixbench User-Agent Useradd Varnish VBA Vbs Vercel Vi Vim Visudo Vmstat Vmware Vnc Voice Vpn Vscode Vsftp Vsftpd Vue Watchdog Web Webcam Webistrano Wget Wiki Windows Wol Wordpress Workshop Wsl X-Windows Xampp Xcache Xmllint Xtrabackup Yule Yum Zabbix Zeromq Zip Zonetime Zookeeper 下载工具 云主机 云原生 代理 加密 古意 吐槽 圈里圈外 娱乐 字符串函数 安全 平台架构 推理 提权 故事汇 故障案例 数据结构 每日看点 民国史 生活 科学记录 站长管理工具 算法 管理 网站架构 翻墙 股票 行业 诗韵 负载均衡 远程管理 面试题

Links

Meta