Linux-Befehle: wget (Dateien herunterladen), ssh (Anmeldung und passwortfreie Anmeldung), scp (Remote-Dateiübertragung), sh (Skript)

wget

Überblick

wget ist一个下载文件的工具,用在命令行下,Laden Sie Software herunter oder stellen Sie die Sicherung vom Remote-Server auf dem lokalen Server wieder her

wget unterstützt die Protokolle HTTP, HTTPS und FTP und kann einen HTTP-Proxy verwenden

Unterstützung Automatisches Absenken

  • wget kann im Hintergrund ausgeführt werden, nachdem der Benutzer das System verlässt.
  • bedeutet, dass Sie sich beim System anmelden, eine Wget-Download-Aufgabe starten und dann das System verlassen können, wget将在后台执行直到任务完成 im Vergleich zu den meisten anderen Browsern, die beim Herunterladen großer Mengen eine kontinuierliche Benutzerbeteiligung erfordern Datenmengen. Die Vorteile liegen auf der Hand

sehr stabil

  • Es verfügt über eine starke Anpassungsfähigkeit in Situationen mit sehr geringer Bandbreite und instabilen Netzwerken.
  • Wenn der Download aus Netzwerkgründen fehlschlägt, wird wget den Versuch fortsetzen, bis die gesamte Datei heruntergeladen ist.
  • Wenn der Server den Downloadvorgang unterbricht, kontaktiert er den Server erneut und setzt den Download an der Stelle fort, an der er gestoppt wurde.

verwenden

Befehlsformat:

wget [参数] [URL地址]

Laden Sie Ressourcen aus dem Internet herunter. Wenn kein Verzeichnis angegeben ist, werden die heruntergeladenen Ressourcen standardmäßig im aktuellen Verzeichnis heruntergeladen.

Laden Sie eine einzelne Datei herunter

Laden Sie eine Datei aus dem Internet herunter und保存在当前目录, während des Downloadvorgangs wird ein Fortschrittsbalken angezeigt , einschließlich (Prozentsatz des Download-Abschlusses, heruntergeladene Bytes, aktuelle Download-Geschwindigkeit, verbleibende Download-Zeit).

wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

Geschwindigkeitsbegrenzter Download

Wenn wget ausgeführt wirdbelegt es standardmäßig alle möglichen Bandbreiten-Downloads. Aber当你准备下载一个大文件, und Sie müssen andere Dateien herunterladen, es ist notwendig, die Geschwindigkeit zu begrenzen

wget --limit-rate=300k http://www.minjieren.com/wordpress-3.1-zh_CN.zip

Hintergrund-Download

Beim Herunterladen sehr großer Dateien können wir den Parameter -b verwenden, um den Download im Hintergrund durchzuführen

wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip

Verwenden Sie den folgenden Befehl, um den Download-Fortschritt zu überprüfen

tail -f wget-log

Erhöhen Sie die Anzahl der Wiederholungsversuche zum Herunterladen von Dateien

Es kann auch fehlschlagen, wenn Netzwerkprobleme vorliegen oder wenn es sich beim Download um eine große Datei handelt. wget默认重试20次连接下载文件. Bei Bedarf können Sie --tries verwenden, um die Anzahl der Wiederholungsversuche zu erhöhen.

wget --tries=40 URL

Laden Sie mehrere Dateien herunter

Speichern Sie zunächst eine Datei mit dem Download-Link

cat  filelist.txt
url1
url2
url3
url4

Verwenden Sie dann den folgenden Befehl

wget -i filelist.txt

Speichern Sie Download-Informationen in der Protokolldatei

wget -o download.log URL

Laden Sie die Datei herunter und speichern Sie sie unter einem anderen Dateinamen

Standardmäßig verwendet wget das letzte Zeichen nach „/“ für den Befehl. Bei dynamischen Link-Downloads ist der Dateiname normalerweise falsch.

  • Wenn Sie es direkt herunterladen, wird es gespeichert als:download.aspx?id=1080
    wget http://www.minjieren.com/download.aspx?id=1080
    

下载并以wordpress.zip名称保存

wget -O wordpress.zip URL

ssh

Überblick

Der SSH-Dienst ist ein Daemon. Das System überwacht Clientverbindungen im Hintergrund. Der Prozess des SSH-Servers heißt sshd und ist für die Überwachung von Clientanfragen (IP 22-Port) in Echtzeit verantwortlich, einschließlich des Austauschs öffentlicher Schlüssel und anderer Informationen.

Der SSH-Server besteht aus 2 Teilen:

  1. openssh (stellt SSH-Dienst bereit)
  2. openssl (Programm, das Verschlüsselung bereitstellt)

Befehlsformat

ssh [OPTIONS] [-p PORT] [USER@]HOSTNAME [COMMAND]

Arbeitsmechanismus

Verfahren:

  1. Wenn der Server startet, generiert er einen Schlüssel (öffentlicher 768-Bit-Schlüssel).
  2. Der lokale SSH-Client sendet eine Verbindungsanfrage an den SSH-Server.
  3. Der Server überprüft die vom Verbindungspunkt-Client gesendeten Daten und IP-Adressen und sendet den Schlüssel (768 Bit) an den Client, nachdem er bestätigt hat, dass er legal ist.
  4. Zu diesem Zeitpunkt kombiniert der Client den lokalen privaten Schlüssel (256 Bit) und den öffentlichen Schlüssel des Servers (768 Bit) zu einem Schlüsselpaarschlüssel (1024 Bit), sendet ihn an den Server zurück und stellt eine Verbindung über den Schlüssel her. paarweise Datenübertragung.
    Fügen Sie hier eine Bildbeschreibung ein
    Abbildung:
  5. Der Remote-Server empfängt die Anmeldeanforderung vom Client-Benutzer TopGun und der Server sendet seinen öffentlichen Schlüssel an den Benutzer.
  6. Der Client verwendet diesen öffentlichen Schlüssel, um das Passwort zu verschlüsseln.
  7. Der Client sendet das verschlüsselte Passwort an den Server.
  8. Der Remote-Server verwendet seinen eigenen privaten Schlüssel, um das Anmeldekennwort zu entschlüsseln und überprüft dann seine Legitimität.
  9. Wenn das Ergebnis verifiziert ist, geben Sie dem Kunden eine entsprechende Antwort.

verwenden

Geben Sie den Benutzernamen und den Port an, um sich beim Remote-Host anzumelden

ssh -p3600 [email protected]

Geben Sie nach der Befehlseingabe das Benutzeranmeldekennwort ein, um die Anmeldung abzuschließen.

ssh realisiert eine passwortfreie Anmeldung

Verfahren

Der Anmeldevorgang ist wie folgt
Fügen Sie hier eine Bildbeschreibung ein
Prozess:

  1. Verwenden Sie ssh-keygen auf dem Client, um ein Schlüsselpaar zu generieren: öffentlicher Schlüssel + privater Schlüssel;
  2. Hängen Sie den öffentlichen Schlüssel des Clients an die Datei „authorized_key“ des Servers an, um den Authentifizierungsvorgang mit dem öffentlichen Schlüssel abzuschließen.
  3. Nach Abschluss der Authentifizierung initiiert der Client eine Anmeldeanforderung an den Server und überträgt den öffentlichen Schlüssel an den Server.
  4. Der Server ruft die Datei „authorized_key“ ab, um zu bestätigen, ob der öffentliche Schlüssel vorhanden ist. Wenn der öffentliche Schlüssel vorhanden ist, generieren Sie eine Zufallszahl R und verschlüsseln Sie sie mit dem öffentlichen Schlüssel, um die Verschlüsselungszeichenfolge für den öffentlichen Schlüssel pubKey® zu generieren.
  5. Übergeben Sie die mit dem öffentlichen Schlüssel verschlüsselte Zeichenfolge an den Client.
  6. Der Client verwendet den privaten Schlüssel, um die mit dem öffentlichen Schlüssel verschlüsselte Zeichenfolge zu entschlüsseln und erhält R;
  7. Wenn der Server und der Client kommunizieren, wird eine Sitzungs-ID (SessionKey) generiert und MD5 wird zum Verschlüsseln von R und SessionKey verwendet, um einen Digest zu generieren.
  8. Der Client übergibt die generierte MD5-verschlüsselte Zeichenfolge an den Server.
  9. Der Server generiert außerdem eine mit MD5(R,SessionKey) verschlüsselte Zeichenfolge.
  10. Wenn die vom Client gesendete verschlüsselte Zeichenfolge mit der vom Server selbst generierten verschlüsselten Zeichenfolge übereinstimmt, ist die Authentifizierung erfolgreich. Zu diesem Zeitpunkt muss kein Passwort mehr eingegeben werden, die Verbindung wird hergestellt und Sie können mit der Remote-Ausführung von Shell-Befehlen beginnen.
erreichen

Schritt eins:Verwenden Sie den Befehl ssh-keygen, um den öffentlichen RSA-Schlüssel und den privaten Schlüssel auf dem Client zu generieren, und drücken Sie zur Bestätigung die Eingabetaste. Die Standardnamen der öffentlichen und privaten Schlüssel sind id_rsa.pub (öffentlicher Schlüssel) und privater Schlüssel (id_rsa),默认保存在 ~/.ssh 目录下.

ssh-keygen -t rsa

Zweiter Schritt:Hängen Sie den öffentlichen Schlüssel des Clients an die Datei ~/.ssh/authorized_keys des Servers an. „authorized_keys“ ist die Datei, die zum Speichern des öffentlichen Schlüssels des Clients verwendet wird.. Es gibt drei Methoden

  1. Über den Befehl ssh-copy-id
  2. Per scp-Befehl
  3. Manuelle Kopie

使用 ssh-copy-id 命令实现如下

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 3600 [email protected]

Schritt 3: Verwenden Sie ssh für die passwortfreie Anmeldung

ssh -p3600 [email protected]

scp

Überblick

scp ist die Abkürzung für Secure Copy, ein Befehl zum Remote-Kopieren von Dateien unter Linux.

  1. Ein ähnlicher Befehl ist cp, aber cp kopiert nur lokal und kann nicht serverübergreifend sein.
  2. Die SCP-Übertragung erfolgt verschlüsselt
  3. scp verbraucht außerdem sehr wenig Ressourcen, erhöht die Systemlast nicht wesentlich und hat im Grunde keinen Einfluss auf die normale Nutzung des Systems.

Befehlsformat:

scp [参数] [原路径] [目标路径]

verwenden

Vom lokalen Server auf den Remote-Server kopieren

Dateien kopieren
# 指定了用户名,命令执行后需要输入用户密码
# 仅指定了远程的目录,文件名字不变
scp local_file remote_username@remote_ip:remote_folder
# 指定了文件名
scp local_file remote_username@remote_ip:remote_file  

# 没有指定用户名,命令执行后需要输入用户名和密码 
# 仅指定了远程的目录,文件名字不变
scp local_file remote_ip:remote_folder   
# 指定了文件名
scp local_file remote_ip:remote_file 
Verzeichnis kopieren
# 指定了用户名,命令执行后需要输入用户密码
scp -r local_folder remote_username@remote_ip:remote_folder  
# 没有指定用户名,命令执行后需要输入用户名和密码
scp -r local_folder remote_ip:remote_folder  

Vom Remote-Server auf den lokalen Server kopieren

从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

Beachten

Wenn die Firewall des Remote-Servers einen bestimmten Port für den Befehl scp festgelegt hat, müssen wir den Parameter -P verwenden, um die Portnummer des Befehls festzulegen. Das Befehlsformat ist wie folgt:

#scp 命令使用端口号 4588
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator

使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

Sch

Überblick

Der Befehl sh ist ein Shell-Befehlsspracheninterpreter, der Befehle zum Lesen von Standardeingaben oder zum Lesen aus einer Datei ausführt.

Syntaxformat:

sh [参数] 脚本

Gemeinsame Parameter
Fügen Sie hier eine Bildbeschreibung ein

verwenden

Führen Sie die angegebene Skriptdatei aus

[root@xx~]# sh xx.sh 
/root
 21:33:45 up 42 min,  1 user,  load average: 0.06, 0.01, 0.00

Führen Sie die angegebene Skriptdatei aus und verfolgen Sie die Befehle nacheinander

[root@xx ~]# sh -x xx.sh 
+ pwd
/root
+ uptime
 21:33:50 up 42 min,  1 user,  load average: 0.05, 0.01, 0.00

Beispiel: JAR-Paket-Shell, die ein Skript auf einem Linux-System ausführt

启动: ./xxx.sh start
停止: ./xxx.sh stop
重启: ./xxx.sh restart


#!/bin/bash

###############################  参数区start  ########################################
source ./00-set-vars.sh
#指定jdk1.8路径 /home/devSoft/jdk1.8.0_77/bin/java  ||   java
JDK_HOME=$JAVA_HOME
#指定注册中心,多个注册中心,使用逗号分隔
EUREKA_SERVER=$EUREKA_CENTER
#指定jar包名称
JAR_NAME=jar包名称.jar
#指定程序端口号
SERVER_PORT=26069
OTHER_PARAM="指定参数,以--开头,多个参数中间空格,参考: --zuul.routes.web-crud-demo.path=/web-crud-demo/** --zuul.routes.web-crud-demo.url=http://1localhost:8080 --zuul.routes.web-crud-demo.stripPrefix=false --zuul.routes.web-crud-demo.custom-sensitive-headers=true"
###############################  参数区end  ##########################################

#使用说明,用来提示输入参数
usage() {
    
    
 echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
 exit 1
}

#检查程序是否在运行
is_exist(){
    
    
 pid=`ps -ef|grep $SERVER_PORT-$JAR_NAME|grep -v grep|awk '{print $2}' `
 #如果不存在返回1,存在返回0 
 if [ -z "${pid}" ]; then
 return 1
 else
 return 0
 fi
}


#启动方法
start(){
    
    
 is_exist
 if [ $? -eq "0" ]; then
 echo "${SERVER_PORT}-${JAR_NAME} is already running. pid=${pid} ."
 else
 nohup $JDK_HOME -Xms64m -Xmx512m -D$SERVER_PORT-$JAR_NAME -jar $JAR_NAME --server.port=$SERVER_PORT $OTHER_PARAM --eureka.client.serviceUrl.defaultZone=$EUREKA_SERVER >/dev/null 2>&1 &
 echo "nohup ${JDK_HOME} -D${SERVER_PORT}-${JAR_NAME} -jar ${JAR_NAME} --server.port=${SERVER_PORT} ${OTHER_PARAM} --eureka.client.serviceUrl.defaultZone=$EUREKA_SERVER >/dev/null 2>&1 & ."
 echo "${SERVER_PORT}-${JAR_NAME} start success"
 fi
}

#停止方法
stop(){
    
    
 is_exist
 if [ $? -eq "0" ]; then
 kill -9 $pid
 else
 echo "${SERVER_PORT}-${JAR_NAME} is not running"
 fi
}
  
#输出运行状态
status(){
    
    
 is_exist
 if [ $? -eq "0" ]; then
 echo "${SERVER_PORT}-${JAR_NAME} is running. Pid is ${pid}"
 else
 echo "${SERVER_PORT}-${JAR_NAME} is NOT running."
 fi
}

#重启
restart(){
    
    
 stop
 start
}
  
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
 "start")
 start
 ;;
 "stop")
 stop
 ;;
 "status")
 status
 ;;
 "restart")
 restart
 ;;
 *)
 usage
 ;;
esac

Supongo que te gusta

Origin blog.csdn.net/yyuggjggg/article/details/128585566
Recomendado
Clasificación