Linux定义变量脚本分享

 更新时间:2017年12月22日 08:43:23   作者:love_linux  
这篇文章主要为大家详细介绍了Linux定义变量的脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Linux定义变量脚本,供大家参考,具体内容如下

现有两段基本一样的代码,只是变量进行改变,其他都没有变化,但是执行过程中出现了不一样的结果

代码一:

vi back.sh
#backup import file,such as /etc/rc.local /var/spool/cron/root
IP=$(ifconfig eth1|sed -nr '2s#.*addr:(.*) B.*#\1#gp')
Path=/backup
if [ $(date +%w) -eq 0 ]
then
  Time=$(date +%F-%w -d "-1 day")
else
  Time=$(date +%F "-1 day")
fi
mkdir $Path/$IP -p
cd / &&\
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
rsync -azv $Path/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsyncd.password &&\
find $Path/ -type f \( -name "*.log" -o -name "*.tar.gz" \) -mtime +7 |xargs rm –f
"back.sh" 15L, 628C written

代码二:

vi back.sh
#backup import file,such as /etc/rc.local /var/spool/cron/root
IP=$(ifconfig eth1|sed -nr '2s#.*addr:(.*) B.*#\1#gp')
Path=/backup
if [ $(date +%w) -eq 0 ]
then
  Time=$(date +%F-%w -d "-1 day")
else
  Time=$(date +%F "-1 day")
fi
mkdir $Path/$IP -p
cd / &&\
tar zcfh /backup/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
rsync -azv $Path/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsyncd.password &&\
find $Path/ -type f \( -name "*.log" -o -name "*.tar.gz" \) -mtime +7 |xargs rm –f
"back.sh" 15L, 628C written

上面代码只是修改了打包的情况,tar zcf /backup和定义一个变量tar $Path/结果就出现不一样的情况,第一种执行结果是:

代码一执行结果:

[root@nfs01 backup]# ls
172.16.1.31 backup_2017-12-23-6.tar.gz flag_2017-12-23-6.log

代码二执行结果:

[root@nfs01 backup]# ls
172.16.1.31

代码一和代码二原理是一样的,但是为什么执行的结果却有差别呢?个人觉得就是环境变量的目录的开头引起的,这样让前面的环境变量失效了,打包了两次:

测试脚本

[root@nfs01 scripts]# sh -x back.sh 
++ sed -nr '2s#.*addr:(.*) B.*#\1#gp'
++ ifconfig eth1
+ IP=172.16.1.31
+ Path=/backup
++ date +%w
+ '[' 4 -eq 0 ']'
++ date +%F -d '-1 day'
+ Time=2017-12-20
+ mkdir /backup/172.16.1.31 -p
+ cd /
+ tar zcfh /backup/172.16.1.31/backup_2017-12-20.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs
+ md5sum /backup/172.16.1.31/backup_2017-12-20.tar.gz
+ rsync -azv /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsyncd.password
sending incremental file list
172.16.1.31/backup_2017-12-20.tar.gz
172.16.1.31/flag_2017-12-20.log

sent 1128 bytes received 65 bytes 2386.00 bytes/sec
total size is 2960 speedup is 2.48
+ xargs rm -f
+ find /backup/ -type f '(' -name '*.log' -o -name '*.tar.gz' ')' -mtime +7

测试脚本也没有出现问题,但是不知道原因是什么,求大神能够解答,不胜感谢!

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Linux Shell 数组建立及使用技巧

    Linux Shell 数组建立及使用技巧

    shell命令在linux系统中是一个非常重要的功能了,我们可以通过它来做N多的事情,本文给大家介绍linux shell 数组建立及使用技巧,需要的朋友可以参考下
    2015-10-10
  • Linux中使用mtime查看文件的最后修改时间的操作方法

    Linux中使用mtime查看文件的最后修改时间的操作方法

    在 Linux 系统中,mtime 是文件的一个重要属性,它记录了文件的最后修改时间,了解文件的最后修改时间对于系统管理和数据追踪非常重要,在本文中,我们将深入探讨如何使用 mtime 查看文件的最后修改时间,需要的朋友可以参考下
    2024-05-05
  • 用expect实现ssh自动登录服务器并进行批量管理的实现方法

    用expect实现ssh自动登录服务器并进行批量管理的实现方法

    这篇文章主要介绍用expect实现ssh自动登录服务器并进行批量管理的实现方法,需要的朋友可以参考下
    2013-02-02
  • vtune自动化安装脚本

    vtune自动化安装脚本

    这篇文章主要介绍了vtune自动化安装脚本,需要的朋友可以参考下
    2014-04-04
  • 详解shell脚本[] [[]] -n -z 的含义解析

    详解shell脚本[] [[]] -n -z 的含义解析

    这篇文章主要介绍了详解shell脚本[] [[]] -n -z 的含义解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 详解Linux中的wget命令

    详解Linux中的wget命令

    Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。下面通过本文给大家介绍Linux中的wget命令,一起看看吧
    2017-09-09
  • Linux命令定位与查找之which、whereis和find的用法示例详解

    Linux命令定位与查找之which、whereis和find的用法示例详解

    Linux命令的定位与查找是我们日常工作中必备的技能,掌握which、whereis和find这三个命令,可以帮助我们更加高效地进行文件搜索和定位工作,这篇文章主要介绍了Linux命令定位与查找:which、whereis和find的用法详解,需要的朋友可以参考下
    2023-10-10
  • 解决centos7 开机/etc/rc.local 不执行的问题

    解决centos7 开机/etc/rc.local 不执行的问题

    下面小编就为大家带来一篇解决centos7 开机/etc/rc.local 不执行的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • linux用户与文件基础命令介绍(1)

    linux用户与文件基础命令介绍(1)

    这篇文章主要为大家详细介绍了linux用户与文件基础命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Linux启动jar包的shell脚本

    Linux启动jar包的shell脚本

    这篇文章主要介绍了Linux启动jar包的shell脚本,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-05-05

最新评论