SHELL实例之日志时间转换
想把Apache已经生成的access.log文件中的[01/Aug/2008:14:06:30 +0800] 部分, 转换 成UTC 时间 的形式,然后输出为一个新的 日志 文件,如何用Shell实现 一下是access.log中记录的一个例子: 192.168.10.174 - - [01/Aug/2008:14:06:30 +0800] GET / HTTP/1.
想把Apache已经生成的access.log文件中的[01/Aug/2008:14:06:30 +0800] 部分,转换成UTC时间的形式,然后输出为一个新的日志文件,如何用Shell实现一下是access.log中记录的一个例子:
192.168.10.174 - - [01/Aug/2008:14:06:30 +0800] "GET / HTTP/1.1" 302 659 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:31 +0800] "GET /index.jsp HTTP/1.1" 200 16533 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /ShowImageServlet?id=1&lang=ja&bean=SolutionBean HTTP/1.1" 200 5083 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /ShowImageServlet?id=2&lang=ja&bean=SolutionBean HTTP/1.1" 200 5148 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /images/favicon.ico HTTP/1.1" 200 5 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /images/w3c_xhtml1.0.gif HTTP/1.1" 200 2333 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /images/zh/title.gif HTTP/1.1" 200 6606 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /include/MatrixOne.swf HTTP/1.1" 200 4073 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /script/Select.htc HTTP/1.1" 200 13800 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /script/Select.htc HTTP/1.1" 200 13800 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /script/check.js HTTP/1.1" 200 3619 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /script/initMenu.js HTTP/1.1" 200 17565 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /script/ja/souceXML.xml HTTP/1.1" 200 2604 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /script/styleSwitch.js HTTP/1.1" 200 1660 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /style/gray%20window/bgImg.gif HTTP/1.1" 200 97 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
192.168.10.174 - - [01/Aug/2008:14:06:32 +0800] "GET /style/gray%20window/bottom_bg.jpg HTTP/1.1" 200 4657 "http://192.168.10.253/index.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)"
try:
$ awk 'BEGIN { FS="[][]"; OFS="" } {gsub(/\//,"-",$2);sub(/:/," ",$2); "date -ud \""$2"\""|getline a;$2="["a"]";print }' access.log
或者用gsed s/...//e
整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。
例如我的例子中的[01/Aug/2008:14:06:30 +0800]是本地时间(即北京时间)
UTC + 时区差 = 本地时间
时区差东为正,西为负。在此,把东八区时区差记为 +0800,
UTC + (+0800) = 本地(北京)时间 (1)
那么,UTC = 本地时间(北京时间))- 0800 (2)
14:06:30 - 08:00:00 = 06:06:30 这个就是UTC时间,不过有的时候会得到前一天的时间
这个也是个问题。。。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Pour ajouter un serveur à Eclipse, procédez comme suit : Créer un environnement d'exécution du serveur Configurer le serveur Créer une instance de serveur Sélectionner l'environnement d'exécution du serveur Configurer l'instance de serveur Démarrer le projet de déploiement du serveur

Tests de concurrence et débogage Les tests de concurrence et le débogage dans la programmation simultanée Java sont cruciaux et les techniques suivantes sont disponibles : Tests de concurrence : tests unitaires : isolez et testez une seule tâche simultanée. Tests d'intégration : tester l'interaction entre plusieurs tâches simultanées. Tests de charge : évaluez les performances et l'évolutivité d'une application sous une charge importante. Débogage simultané : points d'arrêt : suspendez l'exécution du thread et inspectez les variables ou exécutez le code. Journalisation : enregistrez les événements et l'état du fil. Trace de pile : identifiez la source de l’exception. Outils de visualisation : surveillez l'activité des threads et l'utilisation des ressources.

1. Contexte de la construction de la plateforme 58 Portraits Tout d'abord, je voudrais partager avec vous le contexte de la construction de la plateforme 58 Portraits. 1. La pensée traditionnelle de la plate-forme de profilage traditionnelle ne suffit plus. La création d'une plate-forme de profilage des utilisateurs s'appuie sur des capacités de modélisation d'entrepôt de données pour intégrer les données de plusieurs secteurs d'activité afin de créer des portraits d'utilisateurs précis. Elle nécessite également l'exploration de données pour comprendre le comportement et les intérêts des utilisateurs. et besoins, et fournir des capacités côté algorithmes ; enfin, il doit également disposer de capacités de plate-forme de données pour stocker, interroger et partager efficacement les données de profil utilisateur et fournir des services de profil. La principale différence entre une plate-forme de profilage d'entreprise auto-construite et une plate-forme de profilage de middle-office est que la plate-forme de profilage auto-construite dessert un seul secteur d'activité et peut être personnalisée à la demande. La plate-forme de mid-office dessert plusieurs secteurs d'activité et est complexe ; modélisation et offre des fonctionnalités plus générales. 2.58 Portraits d'utilisateurs de l'arrière-plan de la construction du portrait sur la plate-forme médiane 58

Pour déployer et maintenir avec succès un site Web PHP, vous devez effectuer les étapes suivantes : Sélectionnez un serveur Web (tel qu'Apache ou Nginx) Installez PHP Créez une base de données et connectez PHP Téléchargez le code sur le serveur Configurez le nom de domaine et la maintenance du site Web de surveillance DNS les étapes comprennent la mise à jour de PHP et des serveurs Web, la sauvegarde du site Web, la surveillance des journaux d'erreurs et la mise à jour du contenu.

KubernetesOperator simplifie le déploiement du cloud PHP en suivant ces étapes : Installez PHPOperator pour interagir avec le cluster Kubernetes. Déployez l'application PHP, déclarez l'image et le port. Gérez l'application à l'aide de commandes telles que l'obtention, la description et l'affichage des journaux.

Comment mettre en œuvre les meilleures pratiques de sécurité PHP PHP est l'un des langages de programmation Web backend les plus populaires utilisés pour créer des sites Web dynamiques et interactifs. Cependant, le code PHP peut être vulnérable à diverses failles de sécurité. La mise en œuvre des meilleures pratiques de sécurité est essentielle pour protéger vos applications Web contre ces menaces. Validation des entrées La validation des entrées est une première étape essentielle pour valider les entrées utilisateur et empêcher les entrées malveillantes telles que l'injection SQL. PHP fournit une variété de fonctions de validation d'entrée, telles que filter_var() et preg_match(). Exemple : $username=filter_var($_POST['username'],FILTER_SANIT

Conseil d'optimisation de la journalisation : désactivez la journalisation du débogage pour éliminer l'impact. Messages de journalisation par lots pour réduire les frais généraux. Utilisez la journalisation asynchrone pour décharger les opérations de journalisation. Limitez la taille du fichier journal pour améliorer les performances de démarrage et de traitement des applications.

L'utilisation de structures de données et d'algorithmes est cruciale dans le cloud computing pour gérer et traiter d'énormes quantités de données. Les structures de données courantes incluent des tableaux, des listes, des tables de hachage, des arbres et des graphiques. Les algorithmes couramment utilisés comprennent les algorithmes de tri, les algorithmes de recherche et les algorithmes graphiques. En tirant parti de la puissance de Java, les développeurs peuvent utiliser des collections Java, des structures de données thread-safe et des collections Apache Commons pour implémenter ces structures de données et algorithmes.
