shell脚本

shell 100

匿名 (未验证) 提交于 2019-12-03 00:06:01
1、编写hello world脚本 #!/bin/bash # 编写hello world脚本 echo "Hello World!" 2、通过位置变量创建 Linux 系统账户及密码 #!/bin/bash # 通过位置变量创建 Linux 系统账户及密码 #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$1" 3、备份日志 #!/bin/bash # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件 # vim /root/logbak.sh # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖 # 注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面 tar -czf log-`date +%Y%m%d`.tar.gz /var/log 00 03 * * 5 /root/logbak.sh 4、一键部署 LNMP(RPM 包版本) #!/bin/bash # 一键部署 LNMP(RPM 包版本) # 使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败 # 本脚本使用于 centos7.2 或 RHEL7.2 systemctl start httpd mariadb systemctl enable httpd mariadb 5、监控内存和磁盘容量

shell习题-29

匿名 (未验证) 提交于 2019-12-03 00:03:02
题目要求 用shell脚本实现,部署mysql主从,假设两台机器上已经安装了mysql,并且目前无新库。 参考答案 #!/bin/bash #这个脚本用来配置MySQL主从同步 #作者:猿课-阿铭 www.apelearn.com #日期:2018-12-17 #!/bin/bash master_ip = 192.168 . 100.12 slave_ip = 192.168 . 100.13 mysqlc = "mysql -uroot -paminglinux" check_ok () { if [ $ ? - ne 0 ] then echo "$1 出错了。" exit 1 fi } f_exist () { d = `date +%F%T` if [ - f $1 ] then mv $1 $1_$d fi } ## 设置主mysql配置 if ! grep '^server-id' / etc / my . cnf then sed - i '/^\[mysqld\]$/a\server-id = 1001' / etc / my . cnf fi if ! grep '^log-bin.*=.*' / etc / my . cnf then sed - i '/^\[mysqld\]$/a\log-bin = aminglinux' / etc / my . cnf

有关adb(安卓调试桥)

匿名 (未验证) 提交于 2019-12-03 00:01:01
位置 官网说明 里边有sdk的位置,但是省略了相应的根目录: C:\Users\yutong\AppData\Local\Android\Sdk 基本使用方法 首先在命令行把根目录的PATH加上去 adb shell 会自动为连上的唯一手机开一个shell,无需指定手机编号 adb shell input [operation] 会直接执行相应操作,不进入shell adb pull filepath adress 将手机指定文件或文件夹复制到电脑 adress 中,当前目录用 ./ FGO脚本用到的shell操作 tap x1 y1 :点击屏幕 swipe x1 y1 x2 y2 :滑动屏幕 screenshot -p filepath :截图存到指定位置 来源:51CTO 作者: tswddd 链接:https://blog.csdn.net/tswddd/article/details/99698052

shell习题-26

匿名 (未验证) 提交于 2019-12-02 23:59:01
题目要求 写一个脚本,依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么,如: Hello, root,your UID is 0. 参考答案 #!/bin/bash #这个脚本用来问候用户 #作者:猿课-阿铭 www.apelearn.com #日期:2018-12-11 cat /etc/passwd |while read line do username=`echo $line|awk -F ':' '{print $1}'` uid=`echo $line|awk -F ':' '{print $3}'` echo "Hello, $username, your uid is $uid." done 题目要求 linux系统 /home目录下有一个文件test.xml,内容如下: <configuration> <artifactItems> <artifactItem> <groupId>zzz</groupId> <artifactId>aaa</artifactId> </artifactItem> <artifactItem> <groupId>xxx</groupId> <artifactId>yyy</artifactId> </artifactItem> <!-- </artifactItem><groupId>some groupId<

Shell脚本互斥设置

匿名 (未验证) 提交于 2019-12-02 23:59:01
  参考:https://blog.csdn.net/hanjiezz/article/details/79571703   shell脚本为了防止同时执行相同的脚本需要设置互斥锁   简单方法,脚本执行开始生成一个锁文件,如果该锁文件存在则代表有人在执行,就退出脚本   test.sh #!/bin/bash LOCKFILE = "/tmp/test_lock" if [ - f $ { LOCKFILE } ] then echo "someon do the same thing" exit else touch $ { LOCKFILE } fi sleep 90 if [ - f $ { LOCKFILE } ] then rm - rf $ { LOCKFILE } fi   sleep模拟脚本在执行其他操作   打开一个终端执行脚本,然后在脚本还未结束的时候在打开另外一个终端执行会提示,然后退出   假如在执行过程中意外或者强制退出了则脚本没有执行到最后删除锁文件的步骤,下面写一个脚本避免该问题 #!/bin/bash if [ - f / var / run / $ { BASH_SOURCE [ 0 ]}. pid ] then ps - ef | grep - v grep | grep $ { BASH_SOURCE [ 0 ]}| grep `cat

tc-shell 基本命令

匿名 (未验证) 提交于 2019-12-02 23:57:01
shell 是一种命令行程序, linux 用户可以通过 shell 与操作系统内核进行交互。 shell 分为好几种:sh,bash,csh,tcsh 其中 tcsh 是 csh 的增强版,常用的两种 shell 就是 bash 和 tcsh。 一般linux 默认shell 是 bash,但是IC公司用的较多的是 tcsh,二者的语法和内建命令相差较大,关于bash,网上资料非常多,这里主要记录 tcsh 的语法和基本命令。 具体使用哪个shell 可以在脚本第一行定义: #! /bin/bash 或者 #! /bin/tcsh tcsh 基本语法: 1. 创建字符串变量: set var = hello; set var01 = “hello world”, 访问变量: echo $var 创建数值变量: @ num = 101 2. 控制流 (a). if (condition) then # 注意 if 和 then 必须写在同一行,if 条件用小括号     cmd01     cmd02 # 可以写很多行命令   else     cmd03   endif # 一定要有这个 endif 结束 (b). 来源:博客园 作者: MioTech 链接:https://www.cnblogs.com/xiaoxie2014/p/11475568.html

shell 操作钉钉机器人实现告警提醒

匿名 (未验证) 提交于 2019-12-02 23:57:01
我们知道,之前的运维告警多通过mail 等方式通知到相应的人员,难以实现随时随地的查看。随着手机APP的发展,很多告警开始发送到IM软件上去。目前比较常用的是发送到微信和钉钉上,今天我们将重点放在钉钉上。群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。借助钉钉机器人,通过官方提供的API,可以很方便的post数据到相应的接收人 。群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警通过自定义机器人聚合到钉钉群实现提醒功能。 Shell 脚本语言是实现Linux系统管理及自动化所必须的重要工具。熟练地编写Shell语言可以提升运维人员的工作效率,适应复杂的工作环境。 在本文,我们聚焦通过shell脚本语言实现借助钉钉机器人发送告警信息。 1: 了解更多群机器人的信息,大家可登入官网学习 https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 2.给自己的机器人起个好听的名字 操作如下: curl是一个命令行工具,通过指定的URL来上传或下载数据,并将数据展示出来。curl中的 c 表示client,而URL,就是URL。 3.1 与curl一起使用的协议,最多的还是HTTP 在每一个HTTP请求中,都有一个对应的方法,常用的方法有: GET 、 POST 、

shell脚本编写用户管理系统

匿名 (未验证) 提交于 2019-12-02 23:57:01
作业要求: 输出如图所示的图形,编写代码可以实现所有的要求 #! /bin/bash #这是创建用户管理系统的脚本 #Date:2019年9月3号 #filename:user.sh #用到了判断、循环,思路很清晰,中等难度 #自己写一个这样的框 echo " //===========================\\ --------------------------------------------------- --------------------------------------------------- " #写一个循环 while : do #执行操作,输入你要操作的序号(1、2、3、4、5、6) read -p "请输入你的操作选择:" user #创建用户,user输入1时,写一个if条件语句 if [ $user -eq 1 ] then read -p "请输入你的用户名:" name #判断输入的用户名是否存在,若存在可以查看用户id,该命令能够执行,返回值1,说明用户已存在不能创建了;若用户不存在,就无法执行该命令,返回值为0,就可以创建用户 id $name &> /dev/null if [ $? -eq 0 ] then echo "******用户已存在!******" else read -p "请输入密码:" mi useradd

shell getopts命令

匿名 (未验证) 提交于 2019-12-02 23:57:01
由于shell命令行的灵活性,自己编写代码判断时,复杂度会比较高。使用内部命令 getopts 可以很方便地处理命令行参数。一般格式为: getopts optstring name [args] getopts 的设计目标是在循环中运行,每次执行循环,getopts 就检查下一个命令行参数,并判断它是否合法。即检查参数是否以 - 开头,后面跟一个包含在 options 中的字母。如果是,就把匹配的选项字母存在指定的变量 variable 中,并返回退出状态0;如果 - 后面的字母没有包含在 options 中,就在 variable 中存入一个 ?,并返回退出状态0;如果命令行中已经没有参数,或者下一个参数不以 - 开头,就返回不为0的退出状态。 getopts引用的三个环境变量: OPTARG : 上一个由getopts内置命令处理的选项参数的值, option argument(存放选项参数),当选项需要选项参数时,getopts 命令就将其置于变量 OPTARG 中 OPTIND : 下一个由getopts内置命令处理的参数的序号,option index,每次调用脚本它都会被初始值为1,会逐次递增。 OPTERR : 如果设为1,bash会显示getopts的错误。设为0,不显示getopts的错误。 getopts 的处理过程:   调用脚本时,OPTIND为初始化为1

shell脚本基础知识梳理&lt;一&gt;

匿名 (未验证) 提交于 2019-12-02 23:57:01
一、shell 脚本格式 #!/bin/bash 第一行是指定那个程序来编译执行脚本 注释是一“#”开头, 二、脚本执行 source、sh、bash、./执行脚本的区别 1、“. ”点命令,就是个点符号(从Bourne Shell而来)是source的另一名称 2、source 命令(从 C Shell 而来)执行bash shell的内置命令 3、bash /bin/bash命令功能要比sh强大 4、sh /bin/sh命令 5、export可新增,修改或删除环境变量,供后续执行的程序使用。同时,重要的一点是,export的效力仅及于该次登陆操作。注销或者重新开一个窗口,export命令给出的环境变量都不存在了。 export PATH=/bin/bash:$PATH 6、(点 source bash sh ./执行的文件名)他们之间的区别 6.1:点和source 执行方式是等价;即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。 6.2:bash sh (可以无执行权限)二者的执行文件不同 ./ (必须有执行权限)三者执行方式是等价的;此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。 6.3: 验证结果: [root@localhost ~]#name=dangxu /