Linux定義變量腳本分享
本文實(shí)例為大家分享了Linux定義變量腳本,供大家參考,具體內(nèi)容如下
現(xiàn)有兩段基本一樣的代碼,只是變量進(jìn)行改變,其他都沒有變化,但是執(zhí)行過程中出現(xiàn)了不一樣的結(jié)果
代碼一:
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和定義一個(gè)變量tar $Path/結(jié)果就出現(xiàn)不一樣的情況,第一種執(zhí)行結(jié)果是:
代碼一執(zhí)行結(jié)果:
[root@nfs01 backup]# ls
172.16.1.31 backup_2017-12-23-6.tar.gz flag_2017-12-23-6.log
代碼二執(zhí)行結(jié)果:
[root@nfs01 backup]# ls
172.16.1.31
代碼一和代碼二原理是一樣的,但是為什么執(zhí)行的結(jié)果卻有差別呢?個(gè)人覺得就是環(huán)境變量的目錄的開頭引起的,這樣讓前面的環(huán)境變量失效了,打包了兩次:
測試腳本
[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
測試腳本也沒有出現(xiàn)問題,但是不知道原因是什么,求大神能夠解答,不勝感謝!
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux?systemd?定時(shí)任務(wù)原理解析
說到?Linux?定時(shí)任務(wù),大家用得最多的就是?crond?服務(wù),但其實(shí)?systemd?也有類似的功能,我們不但可以通過?systemd?來管理服務(wù),還能設(shè)置定時(shí)任務(wù),那就是?systemd?timer,接下來通過本文介紹Linux?systemd?定時(shí)任務(wù)的相關(guān)知識(shí),需要的朋友可以參考下2024-04-04
Shell根據(jù)web日志計(jì)算平均連接時(shí)間功能
這篇文章主要介紹了Shell根據(jù)web日志計(jì)算平均連接時(shí)間功能,本文給出了原代碼和自己修改后的代碼,需要的朋友可以參考下2014-12-12
linux和windows下的自動(dòng)ftp腳本(shell bat)
linix和windows下的自動(dòng)ftp腳本(shell bat),供大家學(xué)習(xí)參考2013-02-02
linux shell實(shí)現(xiàn)守護(hù)進(jìn)程腳本
這篇文章主要介紹了linux shell實(shí)現(xiàn)守護(hù)進(jìn)程腳本,非常簡單實(shí)用的代碼,這里推薦給小伙伴。希望大家能夠喜歡。2015-03-03

