上一章介绍完基础【开发工具】Linux 服务器 Shell 脚本简单入门,这一章结合实际运用

对于 do while if else等流程控制基础不再说明,和编程语言大同小异,可以在实际的脚本使用中学习。

.Net Core 项目后台重启脚本

kill -9 $(ps -ef | grep 'dotnet Test.dll --urls=http://\*:8001' | grep -v grep | awk '{print $2}')

cd ./Test && nohup dotnet Test.dll --urls="http://*:8001" &

echo "重启Test.Api执行完成"

awk '{print $2}' :  取结果的第二列字段,即进程的PID号,终止这个进程

> /dev/null 2>&1   : 将日志输出至 /dev/null , 2>&1 把错误输出日志和标准输出日志合并输出

上面这个命令涉及Shell 输入输出重定向

  • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
  • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
  • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

举个例子: > 输出 字符串 到 文件中, >会覆盖原文件  >>可以在末尾追加

判断奇数的和

新建class6.sh及脚本。

sum=0
for num in 1 2 3 4 5 6 7;do
re=${num}%2
if (( ${re} == 1 ));then
sum=$[${sum}+${num}]
fi
done
echo ${sum}

bash -n XXX.sh 检查脚本是否有误,一般情况下,Linux没有输出表示正确

bash -n XXX.sh 调试脚本, +标识调试输出

MySql备份脚本

在 /home/shell 目录下, 新建class7.sh 脚本,

解释:进入 base_dir 目录下,登录,备份 data1和data2两个数据库到 dump_xxxxx.sql ,把脚本运行log记录到 /home/bankup/mysql_dump.log

base_dir=/home/bankup/sql_script
DATE=$(date +%Y%m%d)
time=$(date "+%Y-%m-%d %H:%M:%S")
cd $base_dir
mysqldump -uroot -p123456 --databases data1 data2> dump$DATE.sql
if [ $? -eq 0 ]
then
echo "成功备份mysql数据库,当前日期为:"$time >> /home/bankup/mysql_dump.log
else
echo "备份mysql数据库失败:当前日期为:"$time>> /home/backup/mysql_dump.log
fi
    if [ $? -eq 0 ] 判断是否相等 ,$? 上个命令的退出状态或函数的返回值, -eq 相等。

此备份脚本已写完,但是还不够方便,把他加入定时任务,自动运行。

使用 crontab -e 命令打开定时任务 在打开的文件添加定时任务代码,然后保存。

59 23 * * * /home/shell/class7.sh

每天23点59分备份执行class7.sh备份数据库。

其他功能:Shell文件包含

可以在一个脚本中包含另一个脚本

class8.sh脚本如下

name="司马"

class9.sh脚本如下

source ./class8.sh

echo "我的名字:$name"

./class9.sh执行脚本

【开发工具】Linux 服务器 Shell 脚本简单应用(MySql备份等脚本)的更多相关文章

  1. 在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

  2. 调用远程linux服务器shell脚本

    package com.haiyisoft.hyoaPc.ui; import java.io.BufferedReader;import java.io.IOException;import jav ...

  3. Linux Bash Shell j简单入门

    BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1     ...

  4. Python开发工具,服务器框架等

    python服务器框架:uWSGI WEB服务器.mod_WS.Meinheld.Gunicorn.CherryPy.Bjoern 查看python内部模块命令,内置函数,查看python已经安装的模 ...

  5. Linux服务器下对Oracle作Rman备份

    由于工作需要,最近要对几台Linux系统下的Oracle数据库进行Rman备份,就在操作的同时,整理了一下,方便今后作为资料进行查阅. ------------------------Linux服务器 ...

  6. Linux服务器部署系列之二—MySQL篇

    MySQL是linux环境中使用最广泛的数据库之一,著名的“LAMP黄金组合”就要用到MySQL.关于MySQL的优点及作用,我就不多讲了,网上很多这样的文章. 今天我们要谈的是MySQL服务器的部署 ...

  7. Linux 网站文件和数据库全量备份 一键脚本(支持FTP,Google Drive)

    原文连接: https://teddysun.com/469.html 此文为转载,建议查看秋水大神的原文,排版更容易查看,另外,建议查看脚本源码,方便了解脚本运行过程, 脚本已测试,大神的脚本一如既 ...

  8. linux 简单的mysql备份和导入,以及文件的备份和导入

    一,数据库的备份与导入 1),数据库的备份 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 例:mysqldump -u dbadmin -p myblo ...

  9. mysql 备份解密脚本

    #!/bin/bash #by sk 备份解码脚本 echo "-------------------------------------------------" functio ...

  10. (转)开发监控Linux 内存 Shell 脚本

    原文:http://blog.csdn.net/timchen525/article/details/76474017 题场景: 开发Shell 脚本判断系统剩余内存的大小,如果低于100MB,就邮件 ...

随机推荐

  1. [转帖]比 Python 快 35000 倍!LLVM&Swift 之父宣布全新编程语言 Mojo:编程被颠覆了

    https://www.infoq.cn/article/GFfVLVpkIGOcKYB85Opb "Mojo 可能是近几十年来最大的编程语言进步." 近日,由 LLVM 和 Sw ...

  2. Linux 查询最近占用内存最多的十个进程的方法

    ps -eo rss,pid,user,command --sort -rss | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { ...

  3. jconsole的简单学习

    摘要 jconsole 是JDK自带的一款图形化监测工具 他可以监测本地程序,也可以检测远程的机器 在没有其他监控手段可以使用的情况下可以快速进行必要的监测 使用方法也比较简单. 本地监控 jcons ...

  4. JDK内嵌指令的简单学习

    java 可以使用 java -jar的方式启动服务 日常工作中用到的比较少 javac 可以将.java 文件编译成 .class中间代码 这个工具开发编写代码中是经常需要使用的, jenkins ...

  5. 依据HTML标准再探Javascript事件循环及其与浏览器渲染的关系

    Javascript的一些基础概念 JavaScript执行引擎在宿主环境中是单线程的,这意味着在同一时间内只能执行一个任务.在Javascript运行期间,引擎会创建和维护相应的堆(heap)和栈( ...

  6. echarts给每个柱状图配置不同的颜色

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. vue render函数的简单使用(1)

    1.render函数的介绍 在vue中我们经常使用HTML模板语法来组建页面. 除此之外,使用还可以使用render函数来创建页面. 因为vue是虚拟DOM,拿到template模板时也要转译成VNo ...

  8. 【0基础学爬虫】爬虫基础之自动化工具 Pyppeteer 的使用

    大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶.逆向相关文章,为实现从易到难全方位覆盖,特设[0基础学爬 ...

  9. 策略模式学习,使用go实现策略模式

    策略模式 定义 优点 缺点 使用场景 代码实现 策略模式和工厂模式的区别 参考 策略模式 定义 策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到客户端的使用 ...

  10. 基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地

    文心大模型,产业级知识增强大模型介绍 官网:https://wenxin.baidu.com/ 项目链接见文末 文心大模型开发套件ERNIEKit,面向NLP工程师,提供全流程大模型开发与部署工具集, ...