So übergeben Sie den Befehl mit ssh an den anderen Server
399
Ashwin G
#!/bin/bash ENV=stg NODE=node4 KEYFILE=************ USERNAME=ubuntu PORT=22 HOST=********** CASSANDRA_HOME=/ebs/var/lib/cassandra KEYSPACE=*** TABLE1=RegisterUser TABLE2=EmailSyncMetadata TABLE3=Emails TABLE4=EmailsPerAccount TABLE5=Modseq TABLE6=EmailsTimeStamp TABLE7=EmailsCronJobDetails TABLE8=Users TABLE9=UserSession TABLE10=filter TABLE11=CompleteContact TABLE12=monitor ssh -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 'sudo rm -r '$CASSANDRA_HOME'/data/'$KEYSPACE'/*/snapshots/*' #remove the previous backup #ssh -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 'sudo rm ' $CASSANDRA_HOME'/data/'$KEYSPACE'/*/backups/*' #take the snapshot ssh -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 'sudo sh /ebs/apps/pkgs/cassandra/bin/nodetool snapshot '$KEYSPACE ssh -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 's3cmd del s3://inblox-cassandra-backup/'$ENV'/cassandra/'$NODE'/snapshots/*/*/*' ssh -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 's3cmd del s3://inblox-cassandra-backup/'$ENV'/cassandra/'$NODE'/backups/*/*/*' tables=( "emails" "registeruser" "modseq" "emailstimestamp" "emailscronjobdetails" "users" "usersession" "filter" "completecontact" ) for ((i=0; i<9; ++i )) ; do a[$i]=`basename $(ssh -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 'ls -d -Art '$CASSANDRA_HOME'/data/inblox/'$'-* | tail -n 1')` #echo "$" done echo "start taking snapshot" #------------------snapshot------------------------ for ((i=0; i<9; i++ )) ; do #echo "$" ssh -v -t -oStrictHostKeyChecking=no -i $KEYFILE $USERNAME@$HOST -p $PORT 's3cmd put -r '$CASSANDRA_HOME'/data/inblox/'$'/snapshots/* s3://inblox-cassandra-backup/'$ENV'/cassandra/'$NODE'/snapshots/'`echo "$" | cut -d'-' -f 1`'/' #echo "`echo "$" | cut -d'-' -f 1`" done
Ich erhalte folgende Ausgabe
Authenticated to 10.0.2.156 ([10.0.2.156]:22). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: Sending environment. debug1: Sending env LANG = en_US.UTF-8 /snapshots/* s3://inblox-cassandra-backup/stg/cassandra/node4/snapshots/emailscronjobdetails/tails-7a91b6a0e8d711e4aa0fc793eb966f5b debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 debug1: channel 0: free: client-session, nchannels 1 Connection to 10.0.2.156 closed. Transferred: sent 3408, received 2244 bytes, in 0.4 seconds Bytes per second: sent 8165.4, received 5376.5 debug1: Exit status 0
Wenn ich in der obigen Ausgabe versuchte, den Befehl auf einem anderen Server auszuführen, wird nur ein Teil des Befehls auf diese Weise übertragen.
"/snapshots/* s3://inblox-cassandra-backup/stg/cassandra/node4/snapshots/emailscronjobdetails/tails-7a91b6a0e8d711e4aa0fc793eb966f5b"
in meinem Befehl "tails-7a91b6a0e8d711e4aa0fc793eb966f5b" ist nicht vorhanden, wird jedoch beim Übertragen an den Server angehängt
Bitte korrigieren Sie zuerst Ihre Zitate.
kenorb vor 8 Jahren
0
mögliches Duplikat von [Wie entkommst du den Apostroph in einer einfachen Anführungszeichenfolge in Bash?] (http://superuser.com/questions/481797/how-do-you-escape-apostrophe-in-single-quoted-string-in- bash)
kenorb vor 8 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
6
Welche zsh-Funktionen verwenden Sie?
-
8
Die Windows-Shell töten
-
3
Mac OS X: herkömmliche Orte, an denen Binärdateien gespeichert werden sollen
-
2
Mac OS X: einfaches Skript gesucht
-
10
Wie richte ich SSH ein, damit ich mein Passwort nicht eingeben muss?
-
3
Wie kann ich ssh verwenden, um einen Befehl auf einem Remote-Unix-Computer auszuführen und zu beende...
-
8
Rette mich vor dem Kauderwelsch
-
2
Wie finde und vergleiche ich ähnliche Dateien im Dropbox-Ordner?
-
4
Wie kann man HOME- oder END-Tasten in mc unter OS X (ssh) verwenden?
-
1
ksh entspricht perl $! Fehlerursache