shell脚本

shell脚本之监控mysql数据库。

匿名 (未验证) 提交于 2019-12-02 22:06:11
1 #!/bin/bash 2 #grep -v grep 就是查找不含有 grep 字段的行 3 status=`/etc/init.d/mysql status | grep running | wc -l` 4 process=`ps -ef | grep mysql | grep -v grep | wc -l` 5 6 port=`lsof -i:3306 | grep -i listen | wc -l` 7 8 mysql -uroot -p'123456' -e "show databases;" > /dev/null 2>/dev/null 9 10 a=$? 11 12 #[ $a -eq 0 ] && [ $port -ne 0 ] && [ $process -ne 0 ] && [ $status -ne 0 ] echo "mysql is running " || 13 [ $a -eq 0 ] && [ $port -ne 0 ] && [ $process -ne 0 ] && [ $status -ne 0 ] \ 14 15 echo "mysql is running" || echo "mysql is not running" 文章来源: shell脚本之监控mysql数据库。

shell 编程练习题1

风流意气都作罢 提交于 2019-12-02 22:02:45
需求1:使用root用户清空/var/log/messages日志,并每次执行保留最近100行 ​ 1.必须是root用户 ​ 2.需要保留最后100行 [root@manager if]# cat if-19.sh #!/bin/bash Author: Oldux.com QQ: 552408925 Date: 2019-10-30 FileName: if-19.sh URL: https://www.xuliangwei.com Description: Log_Path=/var/log/messages #如果是普通用户则拒绝 if [ $UID -ne 0 ];then echo "Permission denied...." exit 1 fi if [ -f $Log_Path ];then #先提取100行的内容写入新的文件 tail -100 $Log_Path >/var/log/messages_bak #将新的文件重新写入到/var/log/messages中 cat /var/log/messages_bak > $Log_Path #最后删除文件 rm -f /var/log/messages_bak #输出结果 echo "clean log done...." else echo "$Log_Path No such file or

在Centos 5.4上安装社区版Mysql5.1.41

匿名 (未验证) 提交于 2019-12-02 22:02:20
今天整理电脑的时候发现多年前的安装文档,share下。 安装Mysql服务,提供公司内部应用系统数据库服务。 PC机环境:IntelE5300 内存4G 硬盘500G 操作系统:Linux Centos 5.4 IP:192.168.0.23 shell>groupadd mysql shell>useradd -g mysql mysql shell>cd /tmp shell>wgethttp://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.41.tar.gz/from/http://mirror.trouble-free.net/mysql_mirror/ shell>tar zxvf mysql-5.1.41.tar.gz shell>cd mysql-5.1.41 shell>./configure --prefix=/usr/local/mysql --without-debug--with-extra-charsets=all --with-charset=utf8 --exec-prefix=/usr/local/mysql--with-pthread --enable-assembler --enable-thread-safe-client--with-mysqld-user=mysql --with

mysql自动备份维护shell脚本

匿名 (未验证) 提交于 2019-12-02 22:02:20
/opt/backup_online.sh #!/bin/bash #功能说明:本功能用于备份数据库 #数据库用户名 dbuser='root' #数据库密码 dbpasswd='zLaaa' #数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2 dbname='adb bdb ' #备份时间 backtime=`date +%Y%m%d%H%M%S` #日志备份路径 logpath='/opt/garbageBackup/' #数据备份路径 datapath='/opt/garbageBackup/' echo ${table} #日志记录头部 for db in $dbname; do source= `mysqldump -u ${dbuser} -p${dbpasswd} ${db}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log; #备份成功以下操作 if [ "$?"==0 ];then ? cd $datapath ? zip -r ${table}${backtime}.zip ?${backtime}.sql > /dev/null ? rm -f ${datapath}/${backtime}.sql fi done ~ ? ? 每天4点备份mysql数据; vim

Linux shell之数组

匿名 (未验证) 提交于 2019-12-02 21:59:42
引言   在Linux平台上工作,我们经常需要使用shell来编写一些有用、有意义的脚本程序。有时,会经常使用shell数组。那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解,shell中的数组。 数组的定义   何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。    数值类型的数组: 一对括号表示数组,数组中元素之间使用“空格”来隔开。   arr_number=(1 2 3 4 5);    字符串类型数组: 同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开。   arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss'); 数组的操作   我们使用数值类型数组arr_number=(1 2 3 4 5)做为源数组进行相关的讲解:获取数组长度,读取某个下标的值,对某个下标赋值,删除、分配和替换以及遍历。提一个知识点,我们在shell里面想获取某个变量的值,使用$符开头,如:$a或者${a}即可。    获取数组长度  

Linux(debian7)操作基础(五)之per调用shell命令

匿名 (未验证) 提交于 2019-12-02 21:59:42
⑴ system命令 说明:perl可以用system调用shell的命令,不获取执行shell命令的输出值。 用法: system("shell cmd"); ⑵ 反引号 说明:perl可以用反引号 `调用shell的命令,获取执行shell命令的输出值。 用法: $result=’shell cmd’;` ⑶ exec命令 说明:perl可以用exec调用shell的命令,执行后不返回perl脚本。 用法: exec("shell cmd"); 原文参考: http://www.jb51.net/article/49980.htm 原文参考: http://blog.sina.com.cn/s/blog_3fe961ae0102vj7q.html 转载请标明出处: Linux(debian7)操作基础(五)之per调用shell命令 文章来源: Linux(debian7)操作基础(五)之per调用shell命令

Linux 中/etc/profile、~/.bash_profile 环境变量配置及执行过程

匿名 (未验证) 提交于 2019-12-02 21:59:42
环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例来说明。 1)etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. 注:在这里我们设定是为所有用户可使用的全局变量。 2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. 3)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息, 当用户登录时,该文件仅仅执行一次! 默认情况下,他设置一些环境变量,执行用户的.bashrc文件. 注:~在LINUX下面是代表HOME这个变量的。 另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一种或几种,如果存在几种的话

linux shell:${var1##*:} ${bz1%,*}的意思

匿名 (未验证) 提交于 2019-12-02 21:59:42
介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。 假设定义了一个变量为: 代码如下: file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值: ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt ${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt ${file#*.}:删掉第一个 . 及其左边的字符串:file.txt ${file##*.}:删掉最后一个 . 及其左边的字符串:txt ${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3 ${file%%/*}:删掉第一个 / 及其右边的字符串:(空值) ${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file ${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my 记忆的方法为: # 是 去掉左边(键盘上#在 $ 的左边) %是去掉右边(键盘上% 在$ 的右边) 单一符号是最小匹配;两个符号是最大匹配 ${file:0:5}:提取最左边的 5 个字节:/dir1 ${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2

05 shell编程之正则表达式

匿名 (未验证) 提交于 2019-12-02 21:59:42
正则表达式&&文本处理利器 学习目标: 目录结构: 正则表达式 正则表达式概述 基础正则表达式 拓展正则表达式 grep sed awk 正则表达式元字符 \:转义字符,使符号就是符号,不存在其他含义。\!,\n等 ^:匹配字符串开始的位置 $:匹配字符串结束的位置 .:匹配除\n之外的任意的一个字符 *:匹配前面子表达式0次或者多次 [list]:匹配list列表中的一个字符 [^list]:匹配任意不在list列表中的一个字符 \{n,m\}:匹配前面的子表达式n到m次,有\{n\}, \{n,\}, \{n,m\}三种格式 扩展正则表达式元字符 +:匹配前面子表达式1次以上 ?:匹配前面子表达式0次或者1次 ():将括号中的字符串作为一个整体 |:以或的方式匹配字条串 Sed工具实践 sed工具概述 Sed用法举例 这只是sed和正则表达式的结合使用的部分案例 有关sed的具体使用详见 https://www.cnblogs.com/zwgblog/p/6013975.html awk工具实践 awk工具介绍 awk 选项 ‘模式或条件{编辑指令}’ 文件1 文件2 awk -f 脚本文件 文件1 文件2 逐行读取文本,默认以空格为分隔符进行分割,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令 FS:指定每行文本的分隔符,缺省为空格或制表位 NF

Linux Shell 脚本攻略 --- 第六章 B计划

匿名 (未验证) 提交于 2019-12-02 21:59:42
6.1 用tar归档 1 tar命令可以用来归档文件,可以用tar将多个文件和文件夹保存为单个文件,同时还能保留所有文件属性,如所有者,权限等,由该命令创建的文件通常称为tarball 2 按照下面的方法,用tar对文件进行归档: tar -cf output.tar sources 例如tar -cf output.tar file1 file2 file3.... 命令中的-c代表的是创建文件,-f代表的是指定文件名 3 向归档中添加文件可以使用下面命令: tar -rvf output.tar new_file 4 用下面的方法列出归档文件的内容: tar -tf output.tar 5 如果需要在归档或列出归档内容的过程中获知更多细节,可以使用-v或-vv选项,它们允许在终端中输出更详细的信息 6 下面的命令可以将归档文件的内容提取到当前目录中: tar -xf output.tar -x表示把当前归档文件中的内容提取到当前目录,我们可以使用-C选项指定需要提取到的目录 tar -xf output.tar -C path 7 连接两个归档文件: tar -Af file1.tar file2.tar // -A选项用来把两个归档文件进行合并 8 从归档文件中删除文件: tar -f output.tar --delete file1 file2 //