Programme pour établir une connexion ssh avec un serveur sur unix
bien chers lecteurs,
je viens ici implorer l'aide de toute personne s'y connaissant bien en java.
1)je dois ecrire un programme contenant GUI programme ouvrant une fenetre ou est marque: le nom du serveur: , le nom du fichier: (fichier auquel je veux acceder), le nom d utilisateur (User:), le passwort: .
2)A partir de ces données là en cliquant sur start, je dois me connecter par ssh avec le user et le passwort entrés au serveur.
Jai dejà fais la premiere etape 1) et cest la seconde etape 2) que je n'arrive pas encore ou du moins j ai pas trop d'idées sur où commencer. Apparement je dois utiliser la bibliotheque Mindterm API ...
Merci de bien vouloir maider et ci joint, le code que jai deja redigé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Test extends JFrame {
/**
* @param args
*/
final static int width = 400;
final static int length = 400;
public Test () {
setTitle("Erste Gui Fenster");
setSize (width, length);
GridBagLayout layout = new GridBagLayout();
setLayout(new GridBagLayout());
JPanel pnl = new JPanel(layout);
GridBagConstraints cons = new GridBagConstraints();
cons.gridx =1;
cons.gridy =2;
cons.anchor = GridBagConstraints.LINE_END;
JButton start = new JButton("start");
getContentPane().add(start,cons);
GridBagConstraints c = new GridBagConstraints();
JLabel texte1 = new JLabel("Servername:");
c.anchor = GridBagConstraints.LINE_START;
c.gridx = 1;
c.gridy = 1;
pnl.add(texte1, c);
JLabel texte2 = new JLabel("Rechnerprogramme:");
c.gridy = 2;
pnl.add(texte2, c);
JLabel texte3 = new JLabel("User:");
c.gridy = 3;
pnl.add(texte3, c);
JLabel texte4 = new JLabel("Passwort:");
c.gridy = 4;
pnl.add(texte4, c);
JTextField eingabe1 = new JTextField();
eingabe1.setPreferredSize(new Dimension(200,20));
c.gridx = 2;
c.gridy = 1;
pnl.add(eingabe1,c);
JTextField eingabe2 = new JTextField();
eingabe2.setPreferredSize(new Dimension(200,20));
c.gridy = 2;
pnl.add(eingabe2, c);
JTextField eingabe3 = new JTextField();
eingabe3.setPreferredSize(new Dimension(200,20));
c.gridy = 3;
pnl.add(eingabe3, c);
JPasswordField passwordField = new JPasswordField();
passwordField.setPreferredSize(new Dimension(200,20));
c.gridy = 4;
pnl.add(passwordField, c);
setVisible(true);
cons.gridy = 1;
cons.anchor = GridBagConstraints.LINE_START;
getContentPane().add(pnl,cons);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test();
}
} |
merci pour cette aide ...
merci dejà pour l'exemple...
je vais de ce pas essayer ainsi et je verrai si ca va fonctionner.
Je reviens dans quelques minutes sur le site faire des retours...
Sinon ils aimeraient bien ici que j utilise Mindterm API documentation...
quelqu un a t il une idee?
Merci d'avance.
pb resolu mais maitenant jai un pb avec Cronjobs
bonjour,
jai un probleme avec crontab.
a travers une fenetre Gui coe indique plus haut, je fais entrer des parametres tels que nom du serveur, nom d utilisateur , mot de passe et la commande et en cliquant sur start je dois parvenir `a obtenir des resultats dans le cadre reserve au resultat dans ma fenetre GUI.
Jusqu ici ttes les autres commandes marchent.
J ai par contre un probleme avec crontab. Par exemple je veux demander de creer ttes les 5 minutes le fichier sandrine.txt.
Pour cela je fais "*/5 * * * *" touch sandrine.txt > commandfile.txt et je clique sur start
ensuite je fais crontab commandfile.txt et je clique sur start.
Alirs quand je veux verifier que le fichier sandrine.txt est bien creer, je fais ls sandrine.txt
je vois juste une seule fois le fichier sandrine.txt pourquoi jene le vois pas plusieurs fois puisque jai demande de me creer ce fichier la ttes les 5 minutes?
Merci de m aider `a resoudre le probleme.
jappelle la commande `a etre executer dans mon programme avec cette partie du code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| public void executeCommand(String cmdLine) {
/*
* Create the remote console to use for command execution. Here we
* redirect stderr of all sessions started with this console to our
* own stderr (NOTE: stdout is NOT redirected here but is instead
* fetched below).
*/
SSH2ConsoleRemote console =
new SSH2ConsoleRemote(client.getConnection(), null, fehler);
@SuppressWarnings("unused")
int exitStatus = -1;
/*
* Run the command. Here we don't redirect stdout and
* stderr but use the internal streams of the session channel
* instead.
*/
if (console.command(cmdLine)) {
exitStatus = console.waitForExitStatus();
texte.add(fehler.toString());
InputStreamReader stdin= new InputStreamReader(console.getStdOut());
/*
* Fetch the internal stdout stream and wrap it in a
* BufferedReader for convenience.
*/
BufferedReader stdout = new BufferedReader(stdin);
//System.out.println(""+console.command(cmdLine));
/*
* Read all output sent to stdout (line by line) and
* print it to our own stdout.
*/
String line;
try {
while((line = stdout.readLine()) != null) {
//System.out.println(line);
//strMessage += "\n"+line;
texte.add("\n"+line);
}
} catch (IOException ex) {
Logger.getLogger(SSH2Connection.class.getName()).log(Level.SEVERE, null, ex);
texte.add(ex.toString());
}
}
} |
que faut il que je modifie dans ce code pour que le crontab fonctionne exactement ou bien faut t il creer une autre classe cronjobs en s inspirant de ce manuel ci?
http://www.sauronsoftware.it/projects/cron4j/manual.php