[LINUX] Vous devez faire attention aux commandes que vous utilisez quotidiennement dans l'environnement de production.

introduction

C'est le 13e jour du Calendrier Ateam cyma Adevent 2019. Aujourd'hui, l'ingénieur cyma @ihsiek du siège social d'EC d'Ateam Co., Ltd. sera responsable.

"Les gens qui l'ont fait dans un environnement de production Calendrier de l'Avent 2019" est très populaire. Récemment, l'environnement CI / CD a été amélioré et les chances d'accès shell à l'environnement de production diminuent, et les histoires d'échec des autres (d'autres sociétés) seront un bâton qui ne tombera pas pour ne pas suivre la même ornière. J'aimerais que les ingénieurs de l'entreprise lisent ces histoires d'échecs.

Alors, j'aimerais écrire une histoire d'échec dans un environnement de production dû à une opération que j'ignorais complètement les risques que j'avais pris dans mon travail précédent.

TL; DR

Qu'est-il arrivé

Contexte

Le jour d'avant

Au jour

Commentaire

Ce qui suit est le résultat de «man cp» dans l'environnement d'occurrence.

Si vous essayez de copier le fichier sur lui-même(Sauf pour l'émission d'un message d'erreur)ne fais rien.
Lors de la copie dans un fichier existant, le fichier de destination est «ouvert(path,O_WRONLY|O_TRUNC)’Ouvert à.
Lors de la copie dans un nouveau fichier, le nouveau fichier est «ouvert(path,O_WRONLY|O_CREAT,mode)"Créé avec.
Le fichier de destination de la copie existe et-Si l'ouverture d'un fichier dans ce format échoue avec l'option f donnée,
cp supprime les fichiers existants(Ou dissocier)Essayer.
Ensuite, si la suppression réussit, l'instruction est poursuivie en tant que copie dans un nouveau fichier.

Bien qu'il soit sur la deuxième ligne à partir du bas, la destination du lien symbolique regarde le même fichier dans la destination de sauvegarde et de publication, donc

  1. Impossible d'ouvrir le fichier
  2. Supprimer le fichier existant
  3. Continuez l'instruction en tant que copie dans un nouveau fichier
  4. Échec de 3 car le fichier source de la copie a disparu dans 2.

Cela semble avoir été la fin du problème. À propos, le comportement de la commande cp semble être différent pour chaque distribution, mais j'ai confirmé qu'un tel problème ne se produisait pas même à ce moment-là si la version était correctement mise à niveau.

Résumé

Je pense que le problème a été causé par le fait que je faisais attention à ce que la commande cp soit juste une commande de copie et que ce serait bien, que j'avais préparé un moyen de la vérifier uniquement en production et que je n'étais pas en mesure de mettre à jour complètement le système d'exploitation. .. Voici mes leçons apprises:

en conclusion

Comment s'est déroulé le 13ème jour du Calendrier Ateam cyma Adevent 2019? Comme c'était une histoire de mon travail précédent, j'ai regardé en arrière en pensant que ce serait impossible dans mon lieu de travail actuel, mais je prie pour que tout le monde ne suive pas la même ornière. Nous nous excusons pour la gêne occasionnée à toutes les personnes impliquées à ce moment-là: bow_tone1:

Aussi, dans le sens où je veux que vous utilisiez les erreurs des autres comme votre propre nourriture, "Les gens qui l'ont fait dans l'environnement de production Calendrier de l'Avent 2019" est vraiment Puisqu'il est recommandé, j'aimerais que plusieurs personnes le lisent, y compris ceux qui n'ont jamais connu d'opération de production. Demain, c'est @namedpython, un nouvel ingénieur diplômé qui est un petit rapatrié en désordre. J'ai hâte de poster des nouveaux arrivants qui devraient fermement construire une plateforme d'analyse de données.

A-Team Co., Ltd. recherche des collègues avec un fort esprit de défi avec qui travailler.

Si vous êtes intéressé à travailler en tant qu'ingénieur, veuillez consulter Cyma's Qiita Jobs.

Pour les autres professions, veuillez consulter Un site de recrutement de groupe d'équipe.

Recommended Posts

Vous devez faire attention aux commandes que vous utilisez quotidiennement dans l'environnement de production.
Comment écrire un fichier auquel vous devez faire attention dans toutes les langues
Le langage de programmation que vous souhaitez pouvoir utiliser
Vous serez ingénieur dans 100 jours --Jour 86 --Base de données -
Vous serez ingénieur dans 100 jours ――Jour 71 ――Programmation ――À propos du scraping 2
Vous serez ingénieur dans 100 jours ――Jour 74 ――Programmation ――À propos du scraping 5
Nous avons résumé les conférences technologiques prévues pour 2020
Vous serez ingénieur dans 100 jours ――Jour 73 ――Programmation ――À propos du scraping 4
Que faire si vous ne pouvez pas utiliser la poubelle dans Lubuntu 18.04.
Vous serez ingénieur dans 100 jours ――Jour 70 ――Programmation ――À propos du grattage
Vous serez ingénieur dans 100 jours ――Jour 81 ――Programmation ――À propos de l'apprentissage automatique 6
Vous serez ingénieur dans 100 jours ――Jour 82 ――Programmation ――À propos de l'apprentissage automatique 7
Vous serez ingénieur dans 100 jours ――Jour 79 ――Programmation ――À propos de l'apprentissage automatique 4
Je voulais faire attention au comportement des arguments par défaut de Python
Vous serez ingénieur dans 100 jours ――Jour 76 ――Programmation ――À propos de l'apprentissage automatique
Vous serez ingénieur dans 100 jours ―― Jour 80 ―― Programmation ―― À propos de l'apprentissage automatique 5
Vous serez ingénieur dans 100 jours ――Jour 84 ――Programmation ――À propos de l'apprentissage automatique 9
Vous serez ingénieur dans 100 jours ――Jour 83 ――Programmation ――À propos de l'apprentissage automatique 8
Vous serez ingénieur dans 100 jours ――Jour 77 ――Programmation ――À propos de l'apprentissage automatique 2
Changer le module à charger pour chaque environnement d'exécution en Python
Vous serez ingénieur dans 100 jours ――Jour 85 ――Programmation ――À propos de l'apprentissage automatique 10
À propos de l'environnement de développement que vous utilisez
Vous serez ingénieur dans 100 jours - Jour 29 - Python - Bases du langage Python 5
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Vous serez ingénieur dans 100 jours - Jour 33 - Python - Bases du langage Python 8
Vous serez ingénieur dans 100 jours --Jour 26 --Python --Basiques du langage Python 3
Utilisez PIL en Python pour extraire uniquement les données souhaitées d'Exif
Vous serez ingénieur dans 100 jours --Jour 32 --Python --Basiques du langage Python 7
Je n'ai pas eu besoin d'écrire décorateur en classe Merci contextmanager
Vous serez ingénieur dans 100 jours --Jour 28 --Python --Les bases du langage Python 4
Utilisez le dernier pip dans un environnement virtualenv
Connectez-vous avec json en utilisant pygogo.
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Le jour où le processus a été tué (j'ai eu une erreur indiquant l'adresse déjà utilisée dans le flacon)
Utilisez CASA Toolkit dans votre propre environnement Python
Kaggle Tutorial Le savoir-faire Titanic pour être dans le top 2%
Je veux utiliser le jeu de données R avec python
Utilisez le hachage pour alléger le jugement de collision d'environ 1000 balles en Python (lié au nouveau virus corona)
L'histoire de PHP qui était correcte dans l'environnement de développement mais boguée dans l'environnement de production LEVEL1 ~ 3 + 1
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
Vous serez ingénieur dans 100 jours ―― Jour 60 ―― Programmation ―― À propos de la structure des données et de l'algorithme de tri