Copia de seguridad automática de los archivos fuente del blog Hexo

1. Introducción

Desde que contacté a Hexo + NexT, descubrí que no puedo prescindir de él. Cuando tengo la capacidad, debo reestructurarlo para hacerlo más personalizado y satisfacer nuestras necesidades de software en la mayor medida. Todos saben que si escribe algo localmente, Lo más temido es cambiar la computadora y reconstruir el blog, por lo que la copia de seguridad es particularmente importante para nosotros. Hacer una copia de seguridad del blog es el objetivo principal de esta publicación, y debes capturar este castillo.
He visto la forma en que Git hace una copia de seguridad de los archivos fuente del blog Hexo. Aunque este método puede hacer una copia de seguridad de los archivos fuente del blog Hexo, para una persona perezosa como yo, cada vez que actualizo el blog, necesito ingresar dos o tres líneas de comandos Git repetidos Cosa problemática. Además, tal vez algún día me olvide de empujar a Github. Dijiste que sí, así que apareció este artículo ...

Segundo, el principio

Al monitorear los eventos de Hexo para completar la ejecución automática de los comandos de Git para la copia de seguridad automática, consulte la documentación de Hexo y encuentre los eventos principales de Hexo, consulte la siguiente tabla:

Nombre del evento Hora del evento
desplegar antes Publicar antes de completar la implementación
deployAfter Publicar después de una implementación exitosa
salida Publicar antes del final de Hexo
generar antes Publicar antes de la generación de archivos estáticos
generateAfter Publicar después de que se genera el archivo estático
nuevo Publicar después de crear el archivo del artículo

Por lo tanto, podemos monitorear los deployAftereventos de Hexo y ejecutar automáticamente el comando de copia de seguridad de Git una vez completada la carga, para lograr el propósito de la copia de seguridad automática.

3. Realización

1. Agregue el directorio Hexo al repositorio de Git

Este script necesita agregar Hexo al repositorio de Git de antemano y vincularse con el repositorio remoto de Github o Gitee antes de que pueda funcionar correctamente. Si no sabe qué hacer, puede consultar mi otra publicación de blog:

2. Instale el shelljsmódulo

Para lograr esta función de copia de seguridad automática, debe confiar en un módulo shelljs de NodeJs, que reempaqueta child_process, y es más conveniente llamar a los comandos del sistema. (De hecho, es porque soy flojo (╯ ▽ ╰)) Este módulo necesita ser instalado y utilizado.

Escriba el siguiente comando en el comando para completar la instalación del módulo shelljs:

npm install --save shelljs

3. Escriba un script de respaldo automático

shelljsDespués de instalar el módulo , cree un nuevo archivo js en la carpeta Hexoraíz scripts, y el nombre del archivo se puede tomar a voluntad (mi nombre de archivo es :) auto_backup.js. Si no hay un scriptsdirectorio, cree uno nuevo.

Luego, en el guión, escriba lo siguiente:

require('shelljs/global');
try {
    hexo.on('deployAfter', function() {//当deploy完成后执行备份
        run();
    });

} catch (e) {
    console.log("产生了一个错误啊<( ̄3 ̄)> !,错误详情为:" + e.toString());
}
function run() {
    if (!which('git')) {
        echo('Sorry, this script requires git');
        exit(1);
    } else {
        echo("======================Auto Backup Begin===========================");
        cd('E:/work/myblog');    //此处修改为Hexo根目录路径
        if (exec('git add --all').code !== 0) {
            echo('Error: Git add failed');
            exit(1);
        }
        if (exec('git commit -am "blog auto backup script\'s commit"').code !== 0) {
            echo('Error: Git commit failed');
            exit(1);
        }
        if (exec('git push origin master').code !== 0) {
            echo('Error: Git push failed');
            exit(1);
        }
        echo("==================Auto Backup Complete============================")
    }
}
  • Entre ellos, la ruta de E: / work / myblog en la línea 16 debe modificarse a la ruta del directorio raíz de Hexo. (La ruta en el script es la ruta hexadecimal del blogger)

  • Si su nombre de repositorio remoto de Git no es de origen, también debe modificar el comando push ejecutado en la línea 25 a su nombre de repositorio remoto y el nombre de rama correspondiente.

4. Resultados de la prueba

Guarde la secuencia de comandos y salga, y luego ejecute el hexo dcomando. Después de ejecutar los resultados regulares, obtendrá resultados similares a los siguientes:

Esto muestra que la carga se realizó correctamente. Después de cada actualización de la publicación del blog y la implementación en el servidor, la copia de seguridad se iniciará y completará automáticamente ~

Verifique la biblioteca de espejo de github, como se muestra a continuación, obtuvo lo que desea:

¡La prueba fue exitosa!

Estoy muy feliz de poder hacer una copia de seguridad automática de los archivos fuente del blog Hexo y alojarlos en Github en el futuro.

Publicado 120 artículos originales · elogiado 201 · 230,000 vistas +

Supongo que te gusta

Origin blog.csdn.net/wugenqiang/article/details/89206860
Recomendado
Clasificación