Cette réponse est un petit mais je pense utile ajout à la Excellente réponse alors suivez d'abord ces instructions. Ensuite, vous pouvez utiliser ce script pour trouver plus facilement votre configuration.
Une fois que vous avez les vidages de mémoire de la réponse supérieure, vous pouvez utiliser ce script Awk légèrement sur-engineered pour extraire tout ce qui ressemble à un bloc de configuration de niveau supérieur entouré de crochets.
#!/usr/bin/awk -f
### Setup
# We're searching for a keyword followed by an open brace to start
# And the a close brace at the start of a line to end
# Also include commented sections, cause otherwise they look funny
BEGIN {
start="[[:alpha:]_#]+ \\{$";
end="^#?}"
}
# Shortcut to extract a regex pattern from $0
function extract(ere) { return substr($0, match($0, ere), RLENGTH) }
# Check for end conditions first
# This way we end the section before we print below
# For the primary end condition, print out the matched bit
$0 ~ end { print extract(end); go=0}
# And a safety stop: bail on any non-printable lower-ASCII characters
/[\x00-\x08\x0e-\x19]/ { go=0 }
# If we're in a section, print the line!
go {print}
# Otherwise, check for our starting condition
# If we find it, print just that bit and turn on our flag
!go && $0 ~ start {
go=1;
print "### Extracted from memory dump:";
print extract(start)
}
Sauvegarder cela dans extract.awk
を実行し awk -f extract.awk mem_*
ou si vous préférez les blagues, voilà :
awk 'BEGIN { start="[[:alpha:]_#]+ \\{$"; end="^#?}" } function extract(ere) { return substr($0, match($0, ere), RLENGTH) } $0 ~ end {print extract(end); go=0} /[\x00-\x08\x0e-\x19]/ { go=0 } go {print} !go && $0 ~ start { go=1; print "### Extracted from memory dump:"; print extract(start)}' mem_*
Ce script devrait déverser une liste de sections de configuration de haut niveau que vous pouvez ensuite parcourir pour récupérer celles dont vous avez besoin, sans avoir à fouiller dans un tas d'autres bruits de mémoire.
Note : Awk peut se plaindre de caractères malformés sur STDERR, vous pouvez simplement l'ignorer. Si vous avez un GNU awk récent, vous pouvez ajouter l'option -b
indique que vous attendez des données binaires, ce qui fera taire l'avertissement.
Mais pourquoi ?
Oui, vous pouvez simplement parcourir ces vidages ou les ouvrir dans un éditeur et rechercher des blocs, mais il y aura de petits morceaux de votre configuration dispersés dans la carte mémoire, ce qui peut être ennuyeux de creuser. strings
perd les espaces blancs, et vous pouvez grep pour des choses comme une accolade suivie d'une nouvelle ligne... mais nous avons des outils pour nous aider à le faire. Et si vous copiez-coller déjà des scripts de ServerFault, vous pourriez aussi bien en faire un de plus pour vous faciliter la vie.