Bash converte il carattere in variabile

Sto scrivendo un script di controllo personalizzato di nagios raccolti in bash. Il problema che sto avendo è che nagios mostra hostnames come host.name.domain ma collectd detiene i file WSP come host_name_domain. La mia domanda è come posso fare una variabile convertire il nome host che ottiene da nagios (host.name.domain) al formato collectd (host_name_domain).

Questa è la parte in cui deve verificarsi la conversione. Quindi il WSP_PATH darebbe il formato collectd di hostname nella variabile $ NHOST

WSP_PATH=/var/lib/carbon/whisper/ctd/$NHOST/uptime/uptime.wsp 

  • Come configurare plugg aggregc collecd per aggregare l'output da IPTable :: Plugin?
  • Come visualizzare statistiche MongoDB in Graphite?
  • il plugd di networking di collectds invia solo i dati each 100 secondi
  • utilizzando capacitor con inflxdb e collectd
  • Erk stack "non riesce a recuperare mapping hai indici corrispondenti al pattern"
  • Quali sono i parametri di MBean in collectd?
  • 2 Solutions collect form web for “Bash converte il carattere in variabile”

    Usa sed:

     $ NHOST="host.domain.tld" $ NHOST=$(echo $NHOST | sed 's/\./-/g') $ WSP_PATH=/var/lib/carbon/whisper/ctd/$NHOST/uptime/uptime.wsp $ echo $WSP_PATH /var/lib/carbin/whisper/ctd/host-domain/uptime/uptime.wsp 

    Come sopra, / g è richiesto in modo che tutte le istanze di. sono sostituiti da –

    Anche se secondo pensieri, avrebbe probabilmente più senso eseguire questa operazione (sed) sulla variabile $ NHOST (ora modificata per mostrare questo)

    Bash ha la funzionalità richiesta (a less che non sia una versione antica):

     WSP_PATH=/var/lib/carbon/whisper/ctd/${NHOST//./-}/uptime/uptime.wsp 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.