English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文实例为大家分享了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/ [email protected]::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/ [email protected]::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/-result differently, результат выполнения первого типа:
Результат выполнения кода одного:
[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/ [email protected]::backup --password-file=/etc/rsyncd.password отправка списка измененных файлов 172.16.1.31/backup_2017-12-20.tar.gz 172.16.1.31/flag_2017-12-20.log отправлено 1128 байт, получено 65 байт, 2386.00 байт/с Общий размер 2960, ускорение 2.48 + xargs rm -f + find /backup/ -type f '(' -name '*.log' -o -name '*.tar.gz' ')' -mtime +7
Тестовый скрипт также не вызвал проблем, но не знаю, в чем причина, пожалуйста, гуру могут ответить, не могу выразить свою благодарность!
Вот и все, что есть в этой статье, надеюсь, это поможет вам в изучении, также希望大家多多 поддерживать руководства по крику.
Объявление: Контент этой статьи взяты из Интернета, авторские права принадлежат соответствующему владельцу, контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не имеет права собственности, не undergone редактирование人工, и не несет ответственности за соответствующие юридические обязательства. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма, пожалуйста, замените # на @) для отчета, и предоставьте соответствующие доказательства, как только будет установлено, сайт немедленно удаляет涉嫌侵权的内容.