English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este artículo comparte con ustedes un ejemplo de script de definición de variables de Linux, esperando que les sea útil, el contenido específico es el siguiente
Hay dos segmentos de código básicamente iguales, solo se cambia la variable, el resto no cambia, pero hay diferencias en los resultados durante la ejecución
Código uno:
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
Código dos:
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
El código anterior solo modifica la situación de paquete, tar zcf /backup y definir una variable tar $Path/El resultado es diferente, el primer resultado de ejecución es:
Resultado de ejecución de código uno:
[root@nfs01 backup]# ls
172.16.1.31 backup_2017-12-23-6.tar.gz flag_2017-12-23-6.log
Resultado de ejecución de código dos:
[root@nfs01 backup]# ls
172.16.1.31
El principio de código uno y código dos es el mismo, pero ¿por qué hay diferencias en los resultados de ejecución? Creo que es debido al directorio de inicio de la variable de entorno, lo que hace que las variables de entorno anteriores sean ineficaces, se han empaquetado dos veces:
prueba de script
[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 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
测试脚本也没有出现问题,但是不知道原因是什么,求大神能够解答,不胜感谢!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
声明:本文内容来自网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#oldtoolbag.com(在发送邮件时,请将#更换为@进行举报,并提供相关证据,一经查实,本站将立即删除涉嫌侵权内容。)