当前位置: 移动技术网 > 网络运营>服务器>Linux > Linux定义变量脚本分享

Linux定义变量脚本分享

2018年01月25日  | 移动技术网网络运营  | 我要评论

本文实例为大家分享了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

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网