• Kommando expect, så automatisera du i linux.

    Expect är ett verktyg för att automatisera interaktiva kommandon och applikationer i Unix- och Linux-miljöer. Det är särskilt användbart för att hantera program som kräver användarinmatning under körning, exempelvis lösenord, användarnamn eller andra typer av inmatningar som normalt sett kräver manuell interaktion.

    Expect använder följande viktiga parametrar:

    • spawn: Startar ett kommando eller en process.
    • expect: Väntar på ett specifikt mönster eller sträng från processen.
    • send: Skickar en sträng eller kommando till den aktiva processen.
    • interact: Överlåter kontrollen tillbaka till användaren efter automation.

    Grundläggande syntax

    Den grundläggande syntaxen för ett expect-skript ser ut så här:

    #!/usr/bin/expect -f
    
    spawn kommando
    expect \"prompt\"
    send \"svar\\r\"
    interact
    

    10 praktiska exempel på användning av expect

    1. Automatiserad SSH-inloggning:
    #!/usr/bin/expect -f
    spawn ssh användare@server
    expect \"password:\"
    send \"dittlösenord\\r\"
    interact
    
    1. Automatiserad FTP-session:
    #!/usr/bin/expect -f
    spawn ftp ftp.server.com
    expect \"Name\"
    send \"användarnamn\\r\"
    expect \"Password:\"
    send \"lösenord\\r\"
    expect \"ftp>\"
    send \"put fil.txt\\r\"
    send \"bye\\r\"
    
    1. Automatiserad lösenordsändring:
    #!/usr/bin/expect -f
    spawn passwd användare
    expect \"Current password:\"
    send \"gammaltlösen\\r\"
    expect \"New password:\"
    send \"nyttlösen\\r\"
    expect \"Retype new password:\"
    send \"nyttlösen\\r\"
    
    1. Automatisering av mysql-inloggning:
    #!/usr/bin/expect -f
    spawn mysql -u root -p
    expect \"Enter password:\"
    send \"lösenord\\r\"
    interact
    
    1. Automatisk hantering av sudo-kommandon:
    #!/usr/bin/expect -f
    spawn sudo apt update
    expect \"password for\"
    send \"dittlösenord\\r\"
    interact
    
    1. Fjärrkommandon via SSH:
    #!/usr/bin/expect -f
    spawn ssh användare@server \"ls -l\"
    expect \"password:\"
    send \"dittlösenord\\r\"
    interact
    
    1. Automatiserad SCP-filöverföring:
    #!/usr/bin/expect -f
    spawn scp fil.txt användare@server:/mapp
    expect \"password:\"
    send \"dittlösenord\\r\"
    interact
    
    1. Automatiserad interaktion med telnet:
    #!/usr/bin/expect -f
    spawn telnet server 23
    expect \"login:\"
    send \"användare\\r\"
    expect \"Password:\"
    send \"lösenord\\r\"
    interact
    
    1. Automatiserad hantering av interaktiva installationsscript:
    #!/usr/bin/expect -f
    spawn ./install.sh
    expect \"Enter path\"
    send \"/usr/local/app\\r\"
    expect \"Confirm (y/n):\"
    send \"y\\r\"
    interact
    
    1. Automatisering av git-kloning med autentisering:
    #!/usr/bin/expect -f
    spawn git clone https://github.com/användare/repo.git
    expect \"Username\"
    send \"användarnamn\\r\"
    expect \"Password\"
    send \"lösenord\\r\"
    interact
    

    Genom att använda expect kan du effektivisera och automatisera repetitiva och interaktiva arbetsuppgifter, vilket sparar både tid och resurser.

    Här kan du läsa manualsida om expect(1) i vår wiki

    https://wiki.linux.se/index.php/expect(1)

Kommando expect, så automatisera du i linux.

Expect är ett verktyg för att automatisera interaktiva kommandon och applikationer i Unix- och Linux-miljöer. Det är särskilt användbart för att hantera program som kräver användarinmatning under körning, exempelvis lösenord, användarnamn eller andra typer av inmatningar som normalt sett kräver manuell interaktion.

Expect använder följande viktiga parametrar:

  • spawn: Startar ett kommando eller en process.
  • expect: Väntar på ett specifikt mönster eller sträng från processen.
  • send: Skickar en sträng eller kommando till den aktiva processen.
  • interact: Överlåter kontrollen tillbaka till användaren efter automation.

Grundläggande syntax

Den grundläggande syntaxen för ett expect-skript ser ut så här:

#!/usr/bin/expect -f

spawn kommando
expect \"prompt\"
send \"svar\\r\"
interact

10 praktiska exempel på användning av expect

  1. Automatiserad SSH-inloggning:
#!/usr/bin/expect -f
spawn ssh användare@server
expect \"password:\"
send \"dittlösenord\\r\"
interact
  1. Automatiserad FTP-session:
#!/usr/bin/expect -f
spawn ftp ftp.server.com
expect \"Name\"
send \"användarnamn\\r\"
expect \"Password:\"
send \"lösenord\\r\"
expect \"ftp>\"
send \"put fil.txt\\r\"
send \"bye\\r\"
  1. Automatiserad lösenordsändring:
#!/usr/bin/expect -f
spawn passwd användare
expect \"Current password:\"
send \"gammaltlösen\\r\"
expect \"New password:\"
send \"nyttlösen\\r\"
expect \"Retype new password:\"
send \"nyttlösen\\r\"
  1. Automatisering av mysql-inloggning:
#!/usr/bin/expect -f
spawn mysql -u root -p
expect \"Enter password:\"
send \"lösenord\\r\"
interact
  1. Automatisk hantering av sudo-kommandon:
#!/usr/bin/expect -f
spawn sudo apt update
expect \"password for\"
send \"dittlösenord\\r\"
interact
  1. Fjärrkommandon via SSH:
#!/usr/bin/expect -f
spawn ssh användare@server \"ls -l\"
expect \"password:\"
send \"dittlösenord\\r\"
interact
  1. Automatiserad SCP-filöverföring:
#!/usr/bin/expect -f
spawn scp fil.txt användare@server:/mapp
expect \"password:\"
send \"dittlösenord\\r\"
interact
  1. Automatiserad interaktion med telnet:
#!/usr/bin/expect -f
spawn telnet server 23
expect \"login:\"
send \"användare\\r\"
expect \"Password:\"
send \"lösenord\\r\"
interact
  1. Automatiserad hantering av interaktiva installationsscript:
#!/usr/bin/expect -f
spawn ./install.sh
expect \"Enter path\"
send \"/usr/local/app\\r\"
expect \"Confirm (y/n):\"
send \"y\\r\"
interact
  1. Automatisering av git-kloning med autentisering:
#!/usr/bin/expect -f
spawn git clone https://github.com/användare/repo.git
expect \"Username\"
send \"användarnamn\\r\"
expect \"Password\"
send \"lösenord\\r\"
interact

Genom att använda expect kan du effektivisera och automatisera repetitiva och interaktiva arbetsuppgifter, vilket sparar både tid och resurser.

Här kan du läsa manualsida om expect(1) i vår wiki

https://wiki.linux.se/index.php/expect(1)