Skip to content

Commit

Permalink
#368 tryout remote reading minute diffs
Browse files Browse the repository at this point in the history
  • Loading branch information
vmarc committed Feb 28, 2024
1 parent 8f28069 commit 6dfc0ca
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
7 changes: 7 additions & 0 deletions server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,13 @@
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>

<dependency>
<groupId>com.github.mwiede</groupId>
<artifactId>jsch</artifactId>
<version>0.2.16</version>
</dependency>

</dependencies>

<repositories>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package kpn.core.tools.next.support

import com.jcraft.jsch.ChannelSftp
import com.jcraft.jsch.JSch
import com.jcraft.jsch.Session
import org.apache.commons.io.IOUtils

import java.nio.charset.StandardCharsets
import java.util.zip.GZIPInputStream

object MonitorReadReplicateTool {
def main(args: Array[String]): Unit = {
new MonitorReadReplicateTool().tryout()
}
}

class MonitorReadReplicateTool {
def tryout(): Unit = {
val session = openSession()
try {
val channel = openChannel(session)
try {
readStatusFile(channel)
readStateFile(channel)
readMinuteDiffFile(channel)
}
finally {
channel.exit()
}
}
finally {
session.disconnect()
}
}

private def openSession(): Session = {
val jsch = new JSch()
jsch.addIdentity("/home/XXX/.ssh/id_rsa")
jsch.setKnownHosts("/home/XXX/.ssh/known_hosts")
val session = jsch.getSession("XXX", "kpn-analysis")
session.connect()
session
}

private def openChannel(session: Session): ChannelSftp = {
val channel = session.openChannel("sftp").asInstanceOf[ChannelSftp]
channel.connect()
channel
}

private def readStatusFile(channel: ChannelSftp): Unit = {
val inputStream = channel.get("/kpn/status/analysis2")
val string = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
println(string)
}

private def readStateFile(channel: ChannelSftp): Unit = {
val inputStream = channel.get("/kpn/replicate/005/981/121.state.txt")
val string = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
println("---")
println(string)
println("---")
}

private def readMinuteDiffFile(channel: ChannelSftp): Unit = {
val gzippedInputStream = channel.get("/kpn/replicate/005/981/121.osc.gz")
val inputStream = new GZIPInputStream(gzippedInputStream)
val string = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
println(string)
}
}

0 comments on commit 6dfc0ca

Please sign in to comment.