Uso de variables para nombrar archivos en Linux

  

Un administrador del sistema Linux solicitó ayuda al autor recientemente. Dijo que desplegaron un sistema de base de datos Oracle 10G en el sistema operativo Linux. Ahora usan la herramienta de bombeo de datos en el sistema de base de datos para hacer una copia de seguridad de los datos del sistema. Quieren copiar este archivo de copia de seguridad en un lugar específico todos los días. No hay problema hasta este paso. Pero esperan que durante el proceso de copia, el archivo de copia de seguridad se pueda nombrar con el nombre de la variable. Nombrado como 1backup.dmp, 2backup.dmp, etc., dependiendo del día de la semana. Los primeros y dos años indican el significado del día de la semana. Si configuras esto, un ciclo a la semana. Para el próximo lunes, el nuevo archivo de copia de seguridad reemplazará al archivo de copia de seguridad anterior. En este caso, el espacio del disco duro ocupado por el archivo de copia de seguridad no aumentará sin límite.

El autor está desconcertado por el hecho de que no usan directamente las herramientas de respaldo proporcionadas por Oracle para desarrollar una estrategia de respaldo para respaldar la base de datos. Sin embargo, para lograr el uso anterior de variables para nombrar el archivo, aún se puede lograr. De acuerdo con las necesidades de sus empresas, el autor le dio al administrador del sistema una explicación detallada del método de implementación.

Primero, la relación entre la hora de creación del archivo y la hora del sistema.

Cuando utiliza variables para nombrar un archivo (como una variable de tiempo), debe prestar atención a un problema, es decir, la relación entre la hora de creación del archivo y la hora del sistema. Como requisito anterior, si un archivo se creó el lunes, el archivo se copió el martes. Entonces, ¿cuál es el nombre del archivo en este momento? ¿Lleva su nombre después de la hora de creación del archivo o en el momento de la copia? Si observa los requisitos anteriores, es más razonable utilizar el tiempo de creación del archivo para nombrarlo. Porque este tiempo de creación realmente refleja el tiempo de respaldo de la base de datos.

Segundo, se resuelven los parámetros de comando relevantes.

Si desea copiar un archivo a otra ubicación y cambiarle el nombre con una variable de tiempo, puede usar el siguiente comando para implementar cp mydb.log "(fecha% w)" mydb.log . El significado de este comando es copiar mydb.log a una ubicación específica (en el directorio actual) y cambiarle el nombre. La regla de nomenclatura es agregar un parámetro de tiempo delante de la variable de archivo original, aquí está la variable de tiempo de la semana.

"(fecha% w)" Este parámetro es la variable de tiempo para el día de la semana. Tenga en cuenta que el tiempo aquí se basa en cuando se creó el archivo, no cuando se copió el archivo de referencia. Es decir, si el archivo se creó el miércoles y el tiempo de copia es el jueves, entonces el valor de esta variable sería 3 en lugar de 4. Debido a que el archivo fue creado en un momento de 3. Solía ​​cometer este error cuando comencé a contactarme con el sistema operativo Linux. Espero que los errores que el autor ha cometido a menudo puedan hacer que todos estén atentos.

Además, el parámetro de tiempo anterior debe incluirse entre comillas dobles. Pero si no hace esto, entonces el sistema le indicará que este comando tiene un error. Este es un error gramatical. Entonces, si el administrador del sistema usa este comando en un programa por lotes, entonces es mejor tener una prueba previa. Debido a estos errores gramaticales, incluso si usted es un administrador de sistema antiguo, es fácil cometer un error. La práctica es el único criterio para probar la verdad. Esta oración no es incorrecta.

Hay un pequeño detalle que es "(fecha% w)" es diferente de "(fecha +% w)"? Esto es diferente y se puede decir que no. Esto es principalmente para ver qué ocasiones se utilizan. Si se usa en el comando CP, el signo más el medio no (+) es el mismo. Sin embargo, en algunas otras situaciones de comando, se debe agregar el signo más del medio. De lo contrario, el sistema generará un error. Como orden de ECHO de la que quiero hablar más adelante, hay requisitos al respecto.

Tercero, usa el comando Echo para probar.

Si el administrador del sistema no está seguro de los parámetros de comando que ha escrito, entonces puede usar el comando echo para probar. El comando Echo puede mostrar el valor de una variable de entorno o el valor de alguna variable específica. De hecho, estas variables son las variables de entorno en el sistema. Como se muestra abajo. Use echo $ (fecha +% w) para mostrar la hora del sistema del día. Este comando solo muestra el día de la semana.

Si usa este comando, todavía hay una brecha entre los parámetros de tiempo finales en el comando cp, principalmente en los siguientes aspectos.

Primero, cuando desea usar el comando echo para mostrar el valor de una variable del sistema, debe preceder a la variable con un signo $. Si agrega este símbolo, el sistema considerará que se trata de una variable de entorno, o una variable convertida de una variable de entorno. Si no agrega este símbolo, el sistema operativo no lo reconocerá y no podrá mostrar el valor de esta variable.

En segundo lugar, en esta variable, el signo + debe agregarse en el medio. Como se muestra en la figura anterior, si no incluye este signo +, el sistema operativo generará un error que indica que% w no es un parámetro válido. Pero en el comando cp, no hay tal límite obligatorio. Agregar este signo más en el medio puede lograr el mismo efecto. Sin embargo, para mejorar la precisión de los parámetros, es mejor seguir el formato que puede reconocer el comando echo. Debido a que el comando echo puede reconocer el formato, es común entre otros comandos. A la inversa, las celdas que se pueden usar en otros comandos no son necesariamente genéricas en comandos como echo. Por lo tanto, para mejorar la portabilidad de los scripts escritos, es mejor utilizar un método de escritura de variable común.

Copyright © Conocimiento de Windows All Rights Reserved