shell脚本

shell脚本

百般思念 提交于 2019-11-30 22:37:09
检测是否为root用户 # if test $UID -ne 0 ; then if [ $UID -ne 0 ];then echo "Non root user.Please run as root." else echo "Root user" fi 计算命令花费时间 start=$(date +%s) commands; statements; end=$(date +%s) difference=$(( end - start )) echo "Time taken to execute is $difference seconds." time CommandOrScriptName 更好的方式 判断命令是否成功运行 eval $@ if [ $? -eq 0 ] ; then echo "$CMD excuted successfully" else echo "$CMD excuted unsuccessfully" fi # [ $? -eq 0 ] && ... 来源: https://www.cnblogs.com/kylingx/p/11643423.html

[转]ubuntu 环境变量设置方法

孤者浪人 提交于 2019-11-30 22:06:48
环境变量配置文件 在Ubuntu中有如下几个文件可以设置环境变量 1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。 3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当 用户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. 4、~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。 5. /etc/rc.local:自动执行的脚本 几个环境变量的优先级 1>2>3 设置永久环境变量 1.环境变量配置中,要先删除.bash_profile中的三行关于.bashrc的定义,然后把环境变量配置在.bashrc中 2.选择要使用的java环境:update-alternatives –config java 3

shell入门

此生再无相见时 提交于 2019-11-30 21:59:18
输出环境变量 echo $PATH shell脚本执行需要给与权限 chmod +x chmod u+x chmod a+x 使用bash + 脚本,则不需要执行权限 变量赋值“=”两边不可有空格 将命令值赋予变量 A= date B=$(lS -l) B=${lS -l} 列出所有变量 set set | grep 变量名 单引号、双引号区别 单引号内容原封不动输出 双引号取消了空格的作用,特殊符号含义保留 删除变量 unset变量名 特殊变量 位置变量:$N来表示,$0表示文件名,$n表示第n个参数值 特殊变量:$* 程序所有参数 $# 参数个数 $$ 当前程序的PID $! 执行上一个后台指令的PID $? 执行上一个指令的返回值 read命令:从键盘读取数据赋予变量 expr命令: 整数型算数运算 语法expr 表达式 #运算符之间必须空格 ··· expr 3 + 5 a=10 b=20 expr $a / $b #/是整除 expr $a * $b #*是特殊字符,需要转义 expr $a / $b / expr $a * $b ··· 变量测试语句 test 测试条件 或使用[测试条件]来省略test 测试条件:变量、字符串、整数、文件 流程控制 if语法: ··· if 条件 then 语句 fi ··· 扩展:使用;可以把命令写在一行,互不影响与$$不同 ···

shell脚本之发布

孤者浪人 提交于 2019-11-30 21:52:33
#!/bin/bash PATH=/application/jdk/bin:/application/jdk/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin REMOTE=/home/qroot/shangxian LOCAL_HOST=/home/qroot/shangxian LOG_CDATE='date "+%Y-%m-%d"' LOG_CTIME='date "+%H:%M:%S"' CDATE=$(date "+%Y-%m-%d") CTIME=$(date "+%H-%M-%S") SHELL_NAME="deployment_bigdata.sh" SHELL_DIR="/home/qroot" SHELL_LOG="${SHELL_DIR}/${SHELL_NAME}.log" LOCK_FILE="/tmp/deploy_bigdata.lock" #mkdir -p /home/qroot/shangxian/bigdata/{new_word,old_word,tmp,formal,config/{nginx,replace}} usage(){ echo "USAGE:$0 AGE{bigdata [bigdata.tar.gz]|10.28.53.{192,223}]

shell中if语句的使用

帅比萌擦擦* 提交于 2019-11-30 21:22:55
转载于: https://www.cnblogs.com/aaronLinux/p/7074725.html bash中如何实现条件判断? 条件测试类型 : 整数测试 字符测试 文件测试 一、条件测试的表达式: [ expression ] 括号两端必须要有空格 [[ expression ]] 括号两端必须要有空格 test expression 组合测试条件 : -a: and -o: or !: 非 二、整数比较: -eq 测试两个整数是否相等 -ne 测试两个整数是否不等 -gt 测试一个数是否大于另一个数 -lt 测试一个数是否小于另一个数 -ge 大于或等于 -le 小于或等于 命令间的逻辑关系 逻辑与:&& 第一个条件为假 第二个条件不用在判断,最总结果已经有 第一个条件为真,第二个条件必须得判断 逻辑或:|| 三、字符串比较 == 等于 两边要有空格 != 不等 > 大于 < 小于 四、文件测试 -z string 测试指定字符是否为空,空着真,非空为假 -n string 测试指定字符串是否为不空,空为假 非空为真 -e FILE 测试文件是否存在 -f file 测试文件是否为普通文件 -d file 测试指定路径是否为目录 -r file 测试文件对当前用户是否可读 -w file 测试文件对当前用户是否可写 -x file 测试文件对当前用户是都可执行 -z

【shell脚本】定时备份日志===logBackup.sh

我是研究僧i 提交于 2019-11-30 19:12:09
定时备份日志 设置执行权限 [root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh 脚本内容 [root@VM_0_10_centos shellScript]# cat logBackup,sh #!/bin/bash #=========================================== # BACKUP LOGS #=========================================== # 设置显示的日期格式:年-月-日 time=`date +%Y-%m-%d` # 备份路径 path=/usr/local/apache-tomcat-8.5.45/logs cd $path # 备份日志,格式为catalina.2019-10-08.log cat catalina.out > $path/catalina.$time.log # 清空已备份好的日志 cat /dev/null > $path/catalina.out # 将25天之前的日志打包好,然后删除 total=`find $path -name "*.log" -mtime +25 | wc -l` if [ $total -eq 0 ];then   echo "[info] 没有25天之前的日志"; else  

6-2 shell编程基础

本小妞迷上赌 提交于 2019-11-30 18:54:08
shell编程基础 编程基础 Linus:Talk is cheap, show me the code 程序和编程风格 程序: 程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构:数据在计算机中的类型和组织方式 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言:人与计算机之间交互的语言 低级编程语言: 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂、难写 汇编:用一些助记符号替代机器指令,称为汇编语言,如: ADD A,B 将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中 汇编语言写好的程序需要汇编程序转换成机器指令 汇编语言稍微好理解,即机器指令对应的助记符,助记符更接近自然语言 高级编程语言: 编译:高级语言-->编译器-->机器代码-->执行:C,C++ 解释:高级语言-->执行-->解释器-->机器代码:shell,python,php,JavaScript,perl 编程逻辑处理方式 顺序执行 选择执行 循环执行 编程基本结构 shell编程:过程式、解释执行 编程语言的基本结构: 各种系统命令的组合 数据存储:变量、数组 表达式:a + b 语句:if shell脚本基础 shell脚本:

shell脚本一键部署lvs+keepalived

三世轮回 提交于 2019-11-30 16:41:34
环境 两个调度器dr1、dr2,两台真实机rs1、rs2。两台真实机安装httpd,并编辑主页内容用于验证 vip="192.168.132.250" dr1="192.168.132.120" dr2="192.168.132.121" rs1="192.168.132.131" rs2="192.168.132.134" 配置 #/bin/bash vip="192.168.132.250" dr1="192.168.132.120" dr2="192.168.132.121" rs1="192.168.132.131" rs2="192.168.132.134" #dr1配置keepalived yum install -y keepalived cat > /etc/keepalived/keepalived.conf <<EOF global_defs { } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { $vip/24 } } virtual_server $vip 80 { delay

使用 Impala Shell(翻译)

走远了吗. 提交于 2019-11-30 16:02:00
使用 Impala Shell 你可以使用 Impala shell 工具 (impala-shell) 配置数据库和表、插入数据和执行查询。你可以在交互式会话里提交 SQL 语句进行即席查询和探测(For ad hoc queries and exploration, you can submit SQL statements in an interactive session)。为了自动化你的工作,你可以指定命令行选项以处理单个单个语句或脚本文件。 impala-shell 解释器接受在 Impala SQL Language Elements 中列出的所有 SQL 语句,再加上一些用来调整性能和诊断问题的仅用于 shell 的命令。 impala-shell 命令行与熟悉的 Unix 工具融为一体: 使用 -q 选项可以在命令行中执行单个查询,不需要再启动交互式解释器。使用本选项,你可以在 shell 脚本、或 Python、Perl等其他种类 具有命令调用语法的 脚本里运行 impala-shell 使用 -o 选项把查询结果输出到一个文件里 使用 -B 选项关闭整齐打印(pretty-printing),这样你可以生成逗号分隔、制表符分隔或其他分割符的文本作为输出(使用 --output_delimiter 选项指定分隔符;默认分隔符是制表符) 在非交互式模式里

小鸟初学Shell编程(一)认识Shell

て烟熏妆下的殇ゞ 提交于 2019-11-30 15:13:55
开篇介绍 Linux里非常的有用的一个功能,这个功能就叫Shell脚本。 Shell脚本在我日常开发工作里也占了非常重要的角色,项目中一些简单的工作我们都可以使用Shell脚本来完成,比如定时删除日志文件脚本、一键部署系统脚本等一些自动化的功能。 所以掌握好Shell脚本编程,处理一些自动化繁琐的事情会有事半功倍的效果。不管是Linux开发人员还是运维人员都有必要掌握Shell编程。 什么是Shell? Shell是命令解释器,用于解释用户对操作系统的操作。 简单的理解就是,Shell会把用户所执行的命令,翻译给Linux内核,Linux内核在根据命令执行的结果,返回给用户。 比如 Linux查看文件列表的 ls 命令 [root@lincoding /]# ls bin dev home lib64 media opt root selinux sys usr boot etc lib lost+found mnt proc sbin srv tmp var ls 执行的过程简单概述如下: 我们可以通过简单命令,控制内核和操作系统,做我们很多想做的事情,初学者用户也不用去了解Linux的底层知识,那么这就是Shell解释器最主要的功能。 Shell有很多种 可以通过 cat /etc/shells 查看你的Linux系统支持的Shell,我的Linux是CentOs6.5