Kick ShellScript auf dem Server von Java

Vorwort

Ich habe einen Dump der Tabelle erhalten, indem ich ShellScript mit einer zusätzlichen Funktion auf den Server getreten habe Ich habe es noch nie in Java gemacht, also werde ich es aufschreiben Ich habe diese Person als Referenz verwendet Führen Sie hier das ShellScript von RenumberData.sh in / home / dev / sample / work / sh / aus

Ausführungsumgebung

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Anruf

yobidashi.java


CallProcess sh = new CallProcess();
sh.doBackupTable("RenumberData");

CallProcess

CallProcess.java


package mr.yappy;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import sample.core.log.Logger;

/**
 *Verarbeitungsklasse für die Ausführung von Shell-Skripten
 * @param shName Name der Ausführungsshell
 * @author yappy
 * @version 1.0.0
 */
public class CallProcess {

    private Logger log = Logger.getLogger("aaa");

    public void doBackupTable(String shName) {
        Process process = null;
        InputStream inputS = null;
        InputStreamReader isReader = null;
        BufferedReader bReader = null;
        String text = "";

        try {
            //Geben Sie den Pfad auf dem Server an
            String shPath = "/home/dev/sample/work/sh/";
            ProcessBuilder pb = new ProcessBuilder("sh", shPath + shName + ".sh");
            // /home/dev/sample/work/sh/RenumberData.lauf sh
            process = pb.start();

            //inputS = process.getInputStream();
            inputS = process.getErrorStream();
            //isr = new InputStreamReader(inputS, "Shift-JIS");
            isReader = new InputStreamReader(inputS, "UTF-8");
            bReader = new BufferedReader(isReader);

            StringBuilder builder = new StringBuilder();
            String c = "";

            while ((c = bReader.readLine()) != null) {
                //Ausführungsergebnisse schreiben
                builder.append(c);
            }
            //Ausführungsergebnis
            text = builder.toString();
            //Ende
            process.waitFor();
            //Verarbeitungsstatus abrufen
            int ret = process.exitValue();
            if (ret == 0) {
                //Erfolgreiche Fertigstellung
            } else {
                //Abnormale Beendigung
                log.error("error result : " + text);
            }

        } catch (IOException | InterruptedException e) {
            log.error(e,e);
        } finally {
            //Verschiedene schließt
            if (process != null) {
                process.destroy();
            }
            if (inputS != null) {
                try {
                    inputS.close();
                } catch (IOException e) {
                    log.error(e,e);
                }
            }
            if (isReader != null) {
                try {
                    isReader.close();
                } catch (IOException e) {
                    log.error(e,e);
                }
            }
            if (bReader != null) {
                try {
                    bReader.close();
                } catch (IOException e) {
                    log.error(e,e);
                }
            }
        }
    }
}

Recommended Posts

Kick ShellScript auf dem Server von Java
[Java] So rufen Sie die von HTML auf der Serverseite übergebenen Parameter ab
Überprüfen Sie das von Firebase auf der Serverseite erhaltene ID-Token (Java + SpringBoot).
Verwenden der Datenbank (SQL Server 2014) aus einem Java-Programm 2018/01/04
JSON in Java und Jackson Teil 1 Gibt JSON vom Server zurück
Überlegungen zum Java Persistence Framework 2017 (1)
Der Weg von JavaScript nach Java
Installieren Sie das memcached Plugin unter MySQL und greifen Sie von Java aus zu
Meine Gedanken zur Equals-Methode (Java)
Rufen Sie Java von C ++ auf Android NDK auf
Installieren Sie OpenJDK (Java) auf dem neuesten Ubuntu
Rufen Sie die Salesforce REST-API von Java aus auf
Rückblick auf die Grundlagen von Java
Abrufen des Verlaufs vom Zabbix-Server in Java
Führen Sie den in der Zwischenablage gespeicherten Java-Code aus.
Erstellen von Java-Webanwendungen unter Windows Server 2016
Erstellen Sie einen Webanwendungsserver (Java) auf VPS
Verwenden von JUnit über die Befehlszeile unter Ubuntu
Platzieren Sie das Java-Projekt mithilfe der Datenbank auf dem bisher in VPS erstellten Server
[Java] Stellen Sie die Zeit im Browser mit jsoup ein
Migrieren Sie von Java zu Server Side Kotlin + Spring-Boot
Versuchen Sie, den CORBA-Dienst von Spring (Java) aus aufzurufen.
SSH-Login beim App-Server mit Heroku
Versuchen Sie, mit JZOS von Java aus auf das Dataset zuzugreifen
Kompilieren Sie Java und führen Sie es in der Befehlszeile aus
Für Java-Ingenieure, die ab sofort Kotlin starten
Versuchen Sie die Kommunikation mit gRPC auf einem Android + Java-Server
Minecraft BE Serverentwicklung von PHP nach Java
[Java] Memo zum Schreiben der Quelle
[Android-Entwicklung] Holen Sie sich mit Java Bilder vom Server und legen Sie sie in ImageView fest! !!
[Java] Ich möchte die Differenz zum Datum berechnen
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
So stellen Sie auf einem virtuellen Server eine Verbindung von Spring zu MySQL her (ungelöst)
Stellen Sie Java-Apps auf dem IBM Cloud Kubernetes-Dienst bereit
Java-Sprache aus der Sicht von Kotlin und C #
Installieren Sie den neuesten Hardwaretreiber von EL Repo unter CentOS
Rufen wir IBM Watson Assistant 2018-07-10 aus dem Java SDK auf.
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
HTTPS-Verbindung mit Java zum selbstsignierten Zertifikatsserver
[Android] Hochladen von Bildern vom Terminal auf den Server
Hinweise zum Aktualisieren von Ubuntu über die Befehlszeile (16.04 → 18.04, 18.04 → 20.04 beide)
(Ruby on Rails6) Reflektiert den veröffentlichten Inhalt aus dem Formular
Neue Themen aus der Java SE 11 Programmer II-Prüfung
Pessimistische Sperre für NW ABAP von Java über JCo
Rufen Sie Java von JRuby aus auf
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Eval Java-Quelle von Java
Führen Sie PostgreSQL unter Java aus
Greifen Sie über Java auf API.AI zu
Von Java zu Ruby !!
JPS (Java Server-Seiten)
Der Schlüssel zum Ausführen von Docker auf Raspberry Pi 4 (Ubuntu Server 20.04)
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
Informieren Sie sich sofort über neue Funktionen von Java 7 bis Java 9
Apache Geode-Einfache Möglichkeit, Logik auf der Serverseite auszuführen