Je souhaite afficher /proc/uptime
au format puits comme:
DD:HH:MM:SS
/proc/uptime
donnez-moi le temps du système en secondes, existe-t-il une solution standard qui convertit les secondes en ce format?
Voici un moyen sans perl
:
awk '{printf("%d:%02d:%02d:%02d\n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}' /proc/uptime
\n
pour newline serait bien!Vous pouvez le faire par exemple avec perl et quelques calculs simples:
Si vous n'avez pas besoin des secondes, vous pouvez simplement exécuter la
uptime
commande. Sa sortie peut alors être simplement transformée en DD: HH: MM.Par exemple, utiliser (ne fonctionne de cette façon que si le temps de disponibilité> 1 h)
la source
Non, car ce n'est pas vraiment un problème difficile. Divisez le nombre de secondes par 86400 en utilisant la division entière pour obtenir le nombre de jours. Prenez le reste et divisez-le par 3600 pour obtenir le nombre d'heures. Divisez le reste par 60 pour obtenir le nombre de minutes, et vous vous retrouvez avec le nombre de secondes. Tout cela est réalisable depuis le shell en utilisant la
expr
commande si votre shell est assez ancien pour ne pas supporter nativement l'arithmétiquePrendre le nombre de secondes écoulées depuis l'époque et en faire une date lisible par l'homme est un problème difficile, et il existe donc des moyens standard de le faire, par exemple à
date -r SECONDS
partir de la coque. Mais c'est un problème différent.la source
Adapter la partie pertinente de cette réponse .
Tant que votre disponibilité est inférieure à un an, vous pouvez utiliser la commande suivante:
J'extrais le premier champ du fichier de disponibilité, car au moins sur mon Linux, il y a un deuxième champ contenant le temps d'inactivité total. Je considère cela comme le nombre de secondes écoulées depuis l'époque et je le convertis en jour de l'année suivi du temps en heures, minutes et secondes. Puisque le jour de l'année commence à un, j'en soustrais un dans mon
awk
invocation finale .la source
Conversion des secondes depuis l'époque en une date et une heure:
la source