精华内容
下载资源
问答
  • linux脚本

    1 查看磁盘空间情况

    既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败、数据丢失的问题。查看服务器磁盘空间使用情况的命令为:df -h。(df,disk free;h,human;以人类易读的形式展示可用磁盘)
    这里写图片描述
    这里选择根目录(/)作为备份目录。

    2 创建备份目录

    这里写图片描述

    3 创建备份脚本

    备份sql文件脚本格式:

    #!/bin/bash
    mysqldump -uroot -proot DBName > /backup/DBName_$(date +%Y%m%d_%H%M%S).sql
    

    备份sql压缩文件脚本格式:

    #!/bin/bash
    mysqldump -uroot -proot DBName | gzip > /backup/DBName_$(date +%Y%m%d_%H%M%S).sql.gz
    

    删除7天前的备份文件:

    workdir="/backup/"
    
    do_delete()
    {
    	echo file name is $workdir 
       
    		find $workdir -name '*.sql.gz' -and -mtime +7  -type f  -delete
    		if [ $? -eq 0 ];then
    			echo $date delete $dir success!             
    		else
    			echo $date delete $dir FAILD!            
    		 fi
    
    }
    do_delete
    
    • username:数据库用户名
    • password:数据库密码
    • DBName :要备份的数据库名

    在backup目录下执行命令:vi bkdb.sh,并粘贴写好的备份和删除脚本,例如:

    #!/bin/bash    
    mysqldump -uroot -proot wms_prod | gzip > /backup/wms_prod_$(date +%Y%m%d_%H%M%S).sql.gz
          
    workdir="/backup/"
    
    do_delete()
    {
    	echo file name is $workdir 
       
    		find $workdir -name '*.sql.gz' -and -mtime +7  -type f  -delete
    		if [ $? -eq 0 ];then
    			echo $date delete $dir success!             
    		else
    			echo $date delete $dir FAILD!            
    		 fi
    
    }
    do_delete
    

    以上内容有两个作用:

    1. 备份数据库:wms_prod。
    2. 删除7天前/backup/目录下后缀名为.sql.gz的文件。

    4 添加可执行权限

    chmod u+x bkdb.sh
    

    检验脚本是否可用,执行命令:./bkdb.sh。如果可用,则backup目录下会生成备份文件。

    5 添加计划任务

    1. 执行命令crontab -e。如果出现提示信息:command not found,可参考文章:安装crontab,自行完成安装。
    2. 这时就像使用vi编辑器一样,可以对计划任务进行编辑。输入以下内容:
    0 22 * * * /backup/bkdb.sh
    

    意思是每天在22:00执行shell脚本/backup/bkdb.sh


    参考文章:定时备份crontab格式|
    展开全文
  • 用ant执行远程linux脚本

    千次阅读 2010-07-29 09:11:00
    用ant执行远程linux脚本

    1、下载jsch.jar

    http://sourceforge.net/projects/jsch/files/jsch.jar/

     

    2、保存一下内容,命名为build.xml在d:/antHome目录下

     

    <project name="AntHome" basedir="../" default="sshexec">
        <target name="sshexec">
            <sshexec host="172.10.10.89" username="root" password="123456" trust="true" command="cd /;ls" />
        </target>
    </project>

     

    3、把jsch.jar复制到d:/antHome下

    4、执行 ant -lib d:/antHome

    5、显示

     

    sshexec:
      [sshexec] Connecting to 172.10.10.89:22
      [sshexec] cmd : cd /;ls
      [sshexec] alfresco
      [sshexec] bin
      [sshexec] boot
      [sshexec] cloudxfs
      [sshexec] dev
      [sshexec] etc
      [sshexec] home
      [sshexec] lib
      [sshexec] media
      [sshexec] mnt
      [sshexec] opt
      [sshexec] proc
      [sshexec] root
      [sshexec] sbin
      [sshexec] space
      [sshexec] srv
      [sshexec] sys
      [sshexec] tmp
      [sshexec] usr
      [sshexec] var

    BUILD SUCCESSFUL
    Total time: 19 seconds
    D:/antHome>

    展开全文
  • Linux脚本启动jar包

    万次阅读 2019-03-13 14:58:30
    如果在Linux上使用,请使用vi命令编该文件,改为Unix格式。笔者使用的SpringBoot + jsp 因此使用的是war包,如果你使用的是jar包,在文中用到war的地方改成jar就行。 一:脚本auto_deploy.sh 使用该脚本只需要修改...

    注意:以下脚本笔者是在Windows上编辑的,因此默认格式是dos。如果在Linux上使用,请使用vi命令编该文件,改为Unix格式。笔者使用的SpringBoot + jsp 因此使用的是war包,如果你使用的是jar包,在文中用到war的地方改成jar就行。

    一:脚本auto_deploy.sh

    使用该脚本只需要修改JAR_NAME(改成自己的)、LOG_PATH(改成自己的)、脚本格式(改成Unix格式)这三点就行了。

    #!/bin/bash
    # 定义变量
    # 要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
    JAR_NAME="/xxx/xxx/xxx/xxx.war"
    # 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
    LOG_PATh=/export/Logs/main.log
    
    
    # 如果输入格式不对,给出提示!
    tips() {
    	echo ""
    	echo "WARNING!!!......Tips, please use command: sh auto_deploy.sh [start|stop|restart|status].   For example: sh auto_deploy.sh start  "
    	echo ""
    	exit 1
    }
    
    
    # 启动方法
    start() {
            # 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行
    	if [ -z $pid ]; then
            nohup java -jar $JAR_NAME > /dev/null 2>&1 &
            pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
    		echo ""
            echo "Service ${JAR_NAME} is starting!pid=${pid}"
    		echo "........................Here is the log.............................."
    		echo "....................................................................."
            tail -f $LOG_PATh
    		echo "........................Start successfully!........................."
    	else
    		echo ""
    		echo "Service ${JAR_NAME} is already running,it's pid = ${pid}. If necessary, please use command: sh auto_deploy.sh restart."
    		echo ""
    	fi
    }
    
    # 停止方法
    stop() {
    		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ -z $pid ]; then
    		echo ""
            echo "Service ${JAR_NAME} is not running! It's not necessary to stop it!"
    		echo ""
    	else
    		kill -9 $pid
    		echo ""
    		echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
    		echo ""
    	fi
    }
    
    # 输出运行状态方法
    status() {
            # 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ -z $pid ];then
    		echo ""
            echo "Service ${JAR_NAME} is not running!"
    		echo ""
    	else
    		echo ""
            echo "Service ${JAR_NAME} is running. It's pid=${pid}"
    		echo ""
    	fi
    }
    
    # 重启方法
    restart() {
    	echo ""
    	echo ".............................Restarting.............................."
    	echo "....................................................................."
    		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ ! -z $pid ]; then
    		kill -9 $pid
    	fi
    	start
    	echo "....................Restart successfully!..........................."
    }
    
    # 根据输入参数执行对应方法,不输入则执行tips提示方法
    case "$1" in
       "start")
         start
         ;;
       "stop")
         stop
         ;;
       "status")
         status
         ;;
       "restart")
         restart
         ;;
       *)
         tips
         ;;
    esac
    

    注意事项:

    1. -z 命令表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到 
    2.  要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到

     

    二:更改脚本格式

    注意:以下脚本笔者是在Windows上编辑的,因此默认格式是dos。如果在Linux上使用,请使用vi命令编该文件,改为Unix格式。

    第一步: 

    上传脚本文件到Linux系统后,使用vi命令编辑该脚本文件:

    vi auto_deploy.sh
    

    第二步:  

    在Esc模式下冒号输入命令set ff回车就能看到,该脚本是Windows系统的dos格式,如下图

    第三步:  

    在Esc模式下冒号,输入修改格式命令set ff=linux,然后回车(回车后Linux系统并没有提示),完事后还是在Esc模式下输入写入保存命令:wq。

    :set ff=linux
    :wq

    如下图 

     

     

    三:脚本运行截图

    服务非启动状态下截图

    sh auto_deploy.sh

    sh auto_deploy.sh stop

     

    sh auto_deploy.sh status

     

    服务启动状态下截图

    sh auto_deploy.sh start

    再次启动一下试试(此时会有提示:服务已经启动,启动状态下请使用重启命了):

    查看状态(提示正在运行):

    sh auto_deploy.sh status

    重启试试:

    sh auto_deploy.sh restart

    停掉服务试试:

    sh auto_deploy.sh stop

    再次输入stop命令(给出提示:服务没有运行,没必要停止!):

    展开全文
  • LINUX脚本传递多个带空格参数的解决办法     红朝儒生 2017-12-8   关键字:LINUX 脚本 参数 空格 简介:经过一番摸索,找到了传递多个带空格参数的解决办法。      这几天发现构建脚本太过庞大,...

     

    LINUX脚本传递多个带空格参数的解决办法

     

     

    红朝儒生

    2017-12-8

     

    关键字:LINUX 脚本 参数 空格

    简介:经过一番摸索,找到了传递多个带空格参数的解决办法。

     

     

      这几天发现构建脚本太过庞大,于是就想把重复的单项构建独立成一个脚本。结果马上面临一个问题:参数带有空格!

      在网上折腾了一番,也没有解决。于是自己尝试了一番,终于找到真正解决办法。这个办法的优点是,可以同时传递多个带空格的参数。

      

      主脚本test.sh:

      PROJECT_CLEAN=0

      PROJECT_FILES="file1 file2"

      ./build-project.sh $PROJECT_CLEAN "$PROJECT_FILES"

      

      辅脚本build-project.sh:

      PARAM_CLEAN=$1

      PARAM_FILES="$2"

      forfile_name in $PARAM_FILES

      do

          echo $file_name

      done

     

    展开全文
  • Linux 脚本执行编译cmake

    千次阅读 2019-03-07 10:45:32
    Linux 脚本执行编译Cmake 1、使用cmake外部编译的方式,将编译过程的产生文件和make成果物放在某一个新建文件夹内,这样不影响已有的工程文件,一下三个文件main.cpp CMakeLists.txt domake.sh放在同目录下 main.cpp...
  • linux 脚本里的复制命令执行后,复制的文件显示的问号,文件大小与复制的文件大小相同,谢谢
  • 大家好,我想问一下,那个我想在Linux脚本里面定义一个变量,我想先通过命令行去给它赋值,然后执行该脚本。这个具体怎么去实现,由于刚接触脚本语言,有点不明白的。(说明一下,我使用脚本主要是通过Linux下的脚本...
  • 1.前言这篇文章算是通过学习网上其它几篇关于shell脚本病毒文章后自己写的学习心得,通过写这篇文章让自己能够加深理解一下相关知识。但是其实下面用到的shell脚本病毒的现实意义不大,但是对于理解病毒传播的机制有...
  • linux脚本获取参数个数

    千次阅读 2018-08-16 15:40:47
    linux脚本众多,有bash、csh已经其他众多的*sh。 在各个版本的sh中,用法有一些不同。 本次需求:获取脚本的个数,如果不满足制定个数,输出信息并退出 bash写法: #!/bin/bash if [[ $# &amp;amp;lt; &...
  • linux 脚本 每秒 执行一次

    千次阅读 2018-12-04 16:17:45
    设定linux 脚本每秒执行一次1,在shell脚本里调用另一个脚本 1,在shell脚本里调用另一个脚本 cat test.sh #!/bin/bash ping -c 1 192.168.1.1 echo &amp;quot;-----------------------------------------------...
  • Linux 脚本监测jar包运行情况

    千次阅读 2019-04-16 18:00:16
    使用Linux脚本文件实时监测jar的运行情况,自动重启。 创建test.sh文件,保存后赋予该文件权限chomd +x test.sh: #!/bin/sh ps -fe | grep xx.jar | grep -v grep if [ $? -ne 0 ] then echo "start process......
  • Linux脚本执行的两种方式及区别

    千次阅读 2016-10-25 16:53:58
    linux脚本执行的两种方式及区别   1、两种方式:    A、将脚本作为命令行参数的方式如:sh ping.sh    B、脚本能自己独立运行的方式如:./ping.sh   2、#!/bin/bas
  • linux 脚本 学习

    千次阅读 2012-04-11 16:07:50
    首先要了解linux脚本的概念,这里有说: shell 是一个命令解释器.是介于操作系统kernel 与用户之间的一个绝缘层.准确地说,它也是一种强力的计算机语言.一个shell 程序,被称为一个脚本,是一种很容易使用的...
  • 编写linux脚本操作 java 服务

    万次阅读 2019-12-18 00:51:19
    为了在linux上能否方便的启动和关闭JAVA项目,为其编写一个好用的脚本,能大大的提高工作效率,在这里将脚本模板分享给大家参考,如果你在使用的过程中有遇到问题,欢迎在下方评论进行留言! 启动脚本startup.sh ...
  • Linux脚本实现进程监控与重启

    千次阅读 2018-01-14 13:48:02
    Linux脚本实现进程监控与重启 2018年1月14日 大门牙@深圳 总结一下在Device Router服务器开发中使用脚本实现进程监控与自动重启的方法 1. 监控进程的脚本monitor.sh #!/bin/sh device_router_cmd_line='./...
  • Linux脚本中使用新终端运行命令

    千次阅读 2018-07-13 16:43:10
    Linux脚本中使用新控制台运行命令 命令gnome-terminal gnome-terminal 后接 { – }后接要在新终端中运行的命令(大括号中为实际内容,大括号中为两个短横线) ...
  • Linux脚本写一个计算器

    千次阅读 2018-03-29 15:44:36
    题:Linux脚本写一个计算器#!/bin/shwhile :doread -p '请输入第一个数:' num1expr 1 + $num1&gt;/dev/null 2&gt;&amp;1if [ $? -eq 0 ];thenbreakelseecho '数字格式错误或数字为小数,请输入正确内容...
  • linux脚本command not found

    2016-03-24 07:45:02
    ![运行结果](https://img-ask.csdn.net/upload/201603/24/1458805313_597671.jpg) 脚本如下 ![脚本](https://img-ask.csdn.net/upload/201603/24/1458805456_164051.jpg) 各路大神帮帮忙
  • linux脚本的编写

    千次阅读 2019-06-30 13:25:07
    由于个人服务器的资源匮乏,所以没有搭建jenkins 自动化部署,因此自己只能打包上传,所以编写了2个运行脚本脚本1:查找进程并杀死,删除相关文件:【project :是项目的名称】 #!/bin/bash if ps -ef | grep ...
  • 脚本a.sh代码 nc -l 1234 > /tmp/hello & 运行脚本 sh a.sh 脚本b.sh代码 nc -l 2345 > /tmp/hello 运行脚本 sh b.sh & 在其他机器上通过nc发送文件发现 第一...
  • Linux脚本中用户自定义终止符-EOF

    万次阅读 2013-09-14 10:40:26
    Linux脚本中用户自定义终止符-EOF的思考
  • linux脚本加定时任务自动整理日志

    千次阅读 2019-06-21 09:20:58
    这个操作主要是对一些很老的程序没有做每天日志存档并自动删除... 通过linux脚本加定时任务的方式来对每天产生的info.log进行压缩存档,并删除历史info.log,然后重启程序,这样又会重新产生info.log,然后每天循...
  • 1. 比如执行:“hive -f 'hivetest.sh'”,hivetest.sh是Linux上面的一个脚本(关于hive的建表、load数据等等。) 1. 我的问题是:怎么获取这个脚本的执行状态(脚本中的命令是成功了还是失败了)。
  • 调用Runtime.getRuntime().exec()执行Linux脚本防挂死和返回脚本输出
  • Linux脚本中利用sed修改文件内容 常用命令 功能 a 插入,在当前行后添加一行或多行。多行时需要在每行末尾需用“\”续行(最后不需要) c 替换,用此符号后的新文本替换当前行中的文本。多行时需要在每行末尾需用...
  • Linux脚本文件\r\n换行符处理方法

    千次阅读 2020-01-03 09:37:06
    在服务器上面写脚本的时候,一些内容是从Windows系统上面直接复制,导致运行时报错,接下来吾爱编程就为大家介绍一下Linux脚本文件\r\n换行符处理方法,有需要的小伙伴可以参考一下: 1.检查是否含有\r等换行符,也...
  • Linux脚本--获取脚本的真实路径

    千次阅读 2018-03-20 14:59:47
    1.获取当前脚本的真实路径:#!/bin/bashif [[ $0 =~ ^\/.* ]] #判断当前脚本是否为绝对路径,匹配以/开头下的所有then script=$0else script=$(pwd)/$0fiscript=`readlink -f $script` #获取文件的真实路径...
  • Linux脚本中实现终端输入

    千次阅读 2008-09-13 11:46:00
    有的时候linux脚本中调用的程序,仍然需求用户输入命令或数据。例如你在脚本中要执行ORACLE的Sqlplus,并在sqlplus中执行一些命令。在这种情况下,有以下几种处理方式: 1、由用户手工输入。2、使用参数文件并重...
  • linux中执行脚本报无效命令错误,仔细检查脚本发现脚本没有错误,在报错行为空行,遂粘出脚本,在文本编辑器里查看 显示换行字符 发现是windows的换行字符,在linux系统执行报错 转换文本格式 这个时候注意:保存文档...
  • linux 脚本语言初学者

    千次阅读 2018-06-04 15:43:03
    1.脚本编写初步介绍(1)脚本第一行以 #!/bin/sh 开始,也可以用 #!/bin/bash 开始,但是第一行必须以这种方式开始.(2)脚本名需要以.sh结尾(3)#开头的句子表示注释(4)若要执行脚本文件,需给脚本赋权限,chmod...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 737,416
精华内容 294,966
关键字:

linux脚本

linux 订阅