Ich habe einen benutzerdefinierten Autostart fĂŒr X mit Chrom im Kioskmodus (24/7) verwendet und dies getan: https://www.youtube.com/watch?v=P9Sk9bNrzeg
Ich habe ein Backup (auf Google Drive) erstellt, das von cron im Ordner cron.daily erstellt wurde. Ich habe ein Skript geschrieben:
#!/bin/sh
G_USER_INPUT=0
/DietPi/dietpi/dietpi-backup 1 > /mnt/rpi/backup.log && tar zcfv /mnt/rpi/backup.tar.gz /mnt/backup/dietpi-backup/ >> /mnt/rpi/backup.log && rclone copy /mnt/rpi/backup.tar.gz dysk: -L >> /mnt/rpi/backup.log && rm -r /mnt/rpi/backup.tar.gz >> /mnt/rpi/backup.log && reboot
Dieses Skript funktionierte bis zur Version 6.9 von DietPi gut, als es von cron.daily ausgefĂŒhrt wurde.
Das Skript funktioniert gut, wenn ich es manuell ausfĂŒhre.
Nach dem Update auf v.6.10 und v.6.11 funktioniert das Skript nicht von cron.daily aus, aber beim manuellen Start gut.
Auf backup.log habe ich eine unverstĂ€ndliche Zeichenfolge mit einer folgenden Zeichenfolge: ĂberprĂŒfung auf Zugriff auf den Stammstamm.
Auch geht es nicht von Crontab aus.
@eljotx
Vielen Dank fĂŒr Ihren Bericht.
G_USER_INPUT=0
sollte bei Cron-AusfĂŒhrungen automatisch erkannt werden und muss daher nicht zugewiesen werden. Aber wenn Sie möchten, dass es Auswirkungen hat, mĂŒssen Sie es exportieren. Dies ist natĂŒrlich einen Versuch wert:
export G_USER_INPUT=0
Bei nicht interaktiven AusfĂŒhrungen wird das Skript beendet, wenn auf dem Ziellaufwerk (nahezu) nicht genĂŒgend freier Speicherplatz festgestellt wird: https://github.com/Fourdee/DietPi/blob/master/dietpi/dietpi-backup#L456
Aber Sie sagen, manuelle AusfĂŒhrung funktioniert gut? Im Falle eines unzureichenden freien Speicherplatzes wird eine Whiptail-Eingabeaufforderung angezeigt, die Ihnen die Wahl lĂ€sst, diese zu ignorieren oder zu beenden.
Ăber die ProtokolleintrĂ€ge werden einige kryptische Farbcodes + checking for elevation root access
erwartet. Versuchen:
cat /mnt/rpi/backup.log
um die Farbcodes aktiv und damit das Protokoll formatiert zu haben. Bitte geben Sie diese Ausgabe auch hier an, damit wir ĂŒberprĂŒfen können, in welchem ââStadium das Problem aufgetreten ist.
Das Skript funktioniert gut, wenn ich es manuell ausfĂŒhre.
Seltsam.
Versuchen Sie, den Cron-Job auszufĂŒhren, und fĂŒgen Sie die Protokollergebnisse /mnt/rpi/backup.log
NB: dietpi-backup
gibt rsync automatisch in die Protokolldatei /var/log/dietpi-backup.log
. Sie können dies auch verwenden.
Also versuche ich, den Cron-Job ohne G_USER_INPUT = 0 auszufĂŒhren (ich habe dies aus dem Skript entfernt) und ...
Meine Sicherungsprotokolldatei aus /mnt/rpi/backup.log
[90m[[0m[33m......[90m][0m Checking for (elevated) root access[0m
dietpi-backup.log ist leer
Ich habe nach dem Start von cron keinen aktiven Prozess mehr gesehen.
Also habe ich zum Testen eines anderen Skripts hinzugefĂŒgt, um die Ausgabe in der Datei nach dem Start von cron zu sehen:
#!/bin/sh
echo 'Cron works!' > /mnt/rpi/cronworks.log
Dieses Skript wurde jedoch nicht gestartet. Es gibt keine Datei "cronworks.log" unter / mnt / rpi /
Es ist seltsam, weil es eine Ausgabedatei (backup.log) von meinem Skript mit Backup (vom 1. meines Beitrags) gibt, aber nein von diesem einfachen
@eljotx
Okay, es scheint mindestens genauso gut einen Fehler mit cron zu geben. Beachten Sie, dass cron die Skripte ĂŒber run-parts /etc/cron.X/script
startet und es einige Regeln gibt, z. B. mĂŒssen die Skripte im Besitz von root (AFAIK) sein und sicherer, dass die Skripte keine Dateienden haben dĂŒrfen. Das bedeutet, dass /etc/cron.daily/script.sh
ĂŒbersprungen wird, der Name muss stattdessen /etc/cron.daily/script
.
Es sollte auch nicht benötigt werden, aber versuchen Sie, #!/bin/bash
als Shebang zu verwenden, wenn Sie mit DietPi-Skripten arbeiten. Diese selbst haben #!/bin/bash
, aber um ausfallsicher zu sein, versuchen Sie, es auch im Cron-Skript zu verwenden.
Das Skript hatte immer den Namen "backup" (ohne .sh), ich Àndere "#! / Bin / sh" auch im Skript in "#! / Bin / bash", und dieses Skript gehört root. Mein "Test" -Skript aus dem letzten Beitrag funktioniert jetzt auch.
Ich habe alles versucht, funktioniert aber immer noch nicht. Ich Ă€ndere das Skript so, dass es nach Abschluss eines Jobs in eine Protokolldatei gedruckt wird, und ich habe gesehen, dass das Skript gestartet wird, aber die Sicherung nicht gestartet oder beendet wird (dietpi-backup.log ist leer), da nicht zum nĂ€chsten Auftrag wie tar, rclone usw. Und auch nachdem ich cron ausgefĂŒhrt habe, habe ich gesehen, dass process / usr / sbin / cron -f funktioniert und -bash - ist das normal?
Das Skript funktioniert immer noch, wenn ich es manuell ausfĂŒhre. Wenn die Sicherung abgeschlossen ist, muss ich auf OK klicken und abbrechen (Whiptail-Bildschirme). Danach werden die nĂ€chsten Jobs gestartet.
Ich denke, dass das Problem mit der Verwendung von Dietpi-Backup fĂŒr Auto-Backup von Cron gestartet ist. Es funktionierte auf Version 6.9, aber nach dem Umschreiben von dietpi-backup funktionierte es nicht mehr.
@eljotx
Also nochmal, nur um sicher zu gehen:
/DietPi/dietpi/dietpi-backup 1
wird erfolgreich durchlaufen?G_USER_INPUTS=0 /DietPi/dietpi/dietpi-backup 1
ausfĂŒhren, funktioniert dies ebenfalls fehlerfrei und zeigt Folgendes an:root@VM-Jessie:~# G_USER_INPUTS=0 /DietPi/dietpi/dietpi-backup 1
[ OK ] Root access verified.
[ OK ] DietPi-Drive_Manager | RootFS R/W access verified.
[ OK ] DietPi-Backup | Checking for pre-req APT packages: rsync
[ INFO ] DietPi-Backup | Flagged for installation: rsync
[ OK ] DietPi-Backup | APT installation for: rsync, please wait...
Selecting previously unselected package rsync.
(Reading database ... 36227 files and directories currently installed.)
Preparing to unpack .../rsync_3.1.1-3+deb8u1_amd64.deb ...
Unpacking rsync (3.1.1-3+deb8u1) ...
Processing triggers for systemd (215-17+deb8u7) ...
Setting up rsync (3.1.1-3+deb8u1) ...
Processing triggers for systemd (215-17+deb8u7) ...
[ OK ] DietPi-Backup | G_AGI: rsync
DietPi-Backup
âââââââââââââââââââââââââââââââââââââââââââââââââââââ
Mode: Backup
[ OK ] DietPi-Backup | DietPi-Userdata validation: /mnt/dietpi_userdata
[ SUB1 ] DietPi-Services > stop
[ OK ] DietPi-Services | occ maintenance:mode --on
[ OK ] DietPi-Services | stop : cron
[ OK ] DietPi-Services | stop : sonarr
[ OK ] DietPi-Services | stop : lighttpd
[ OK ] DietPi-Services | stop : php5-fpm
[ OK ] DietPi-Services | stop : mysql
[ SUB1 ] DietPi-Services > stop
[ OK ] DietPi-Services | stop : cron
[ OK ] DietPi-Services | stop : sonarr
[ OK ] DietPi-Services | stop : lighttpd
[ OK ] DietPi-Services | stop : php5-fpm
[ OK ] DietPi-Services | stop : mysql
[ INFO ] DietPi-Backup | Backing up to: /mnt/dietpi-backup
[ OK ] DietPi-Backup | Free space check: path=/mnt/dietpi-backup/data | available=5695 MB | required=1861 MB
[ OK ] DietPi-Backup | rsync -aH --delete --delete-excluded --exclude-from=/tmp/.dietpi-backup_filter_inc_exc -v --log-file=/var/log/dietpi-backup.log / /mnt/dietpi-backup/data/
[ INFO ] DietPi-Backup | Backup Completed:
Backup was saved to:
- /mnt/dietpi-backup
- Log file: /var/log/dietpi-backup.log
[ SUB1 ] DietPi-Services > start
[ OK ] DietPi-Services | start : mysql
[ OK ] DietPi-Services | start : php5-fpm
[ OK ] DietPi-Services | start : lighttpd
[ OK ] DietPi-Services | start : sonarr
[ OK ] DietPi-Services | start : cron
[ SUB2 ] DietPi-Process_tool > Apply
[ OK ] DietPi-Process_tool | Completed
[ OK ] DietPi-Services | occ maintenance:mode --off
/DietPi/dietpi/dietpi-backup 1 > /mnt/rpi/backup.log && tar zcfv /mnt/rpi/backup.tar.gz /mnt/backup/dietpi-backup/ >> /mnt/rpi/backup.log && rclone copy /mnt/rpi/backup.tar.gz dysk: -L >> /mnt/rpi/backup.log && rm -r /mnt/rpi/backup.tar.gz >> /mnt/rpi/backup.log && reboot
funktioniert auch und zeigt, dass alle in /mnt/rpi/backup.log
ausgefĂŒhrt und beendet wurden?
run-parts --test /etc/cron.daily
listet Ihr Skript auf (wenn es tĂ€glich verfĂŒgbar ist, ansonsten anpassen)/usr/sbin/cron -f
+ -bash
wird ja erwartet, da es aufgrund von #!/bin/bash
eine Bash-Umgebung startet.Wenn all dies zutrifft, können Sie versuchen, Run-Parts manuell zu starten und zu prĂŒfen, ob sie wie erwartet ausgefĂŒhrt werden:
~/testdir/backup
run-parts ~/testdir
Ich habe getestet, wie Sie zeigen, und bei jeder Ihrer Fragen: Ja, alles funktioniert, wenn ich es manuell starte.
Ich habe es mit dem Befehl run-parts getestet, aber es funktioniert immer noch - wenn ich es manuell mache.
Mein Skript wird nach der Verwendung von run-parts --test /etc/cron.daily
aufgelistet
Wenn ich G_USER_INPUTS = 0 hinzufĂŒge und das Skript manuell starte, sollte ich dann die Bildschirme (Whiptail) mit Informationen zum Protokoll usw. sehen? Weil ich es immer sehe.
@eljotx
G_USER_INPUTS=0
deaktiviert nur die Anzeige von Whiptail-MenĂŒs. Informationen werden nur als Terminalnachrichten angezeigt und Fragen werden mit "Nein" beantwortet (Abbrechen bei unzureichender ĂberprĂŒfung des freien Speicherplatzes, keine Protokollansicht).
Um es fĂŒr das Skript zu erzwingen, mĂŒssen Sie es entweder exportieren, bevor Sie das Skript ausfĂŒhren:
#!/bin/bash
export G_USER_INPUTS=0
/DietPi/dietpi/dietpi-backup 1
oder einfacher, geben Sie es einfach direkt weiter: G_USER_INPUTS=0 /DietPi/dietpi/dietpi-backup 1
Ich habe gerade erkannt, dass Sie G_USER_INPUT=0
oben ohne S
haben. Es muss G_USER_INPUTS=0
mit S
.
Wenn die Variable nicht exportiert wird, bestimmen Skripte, ob Benutzereingaben vorgenommen werden können oder nicht. Bei der AusfĂŒhrung von Cron- und z. B. Systemd-Einheiten sollten alle DietPi-Skripte automatisch G_USER_INPUTS=0
ermitteln und zuweisen.
Sie können ĂŒberprĂŒfen, ob unsere Methode funktioniert, indem Sie zum Start Ihres Cron-Jobs (oder eines Testjobs) Folgendes hinzufĂŒgen:
[[ -t 0 ]] && echo 'This environments allows user inputs' > /mnt/rpi/inputs.log || echo 'This environment does not allow user inputs' > /mnt/rpi/inputs.log
Wenn das Skript manuell ausgefĂŒhrt wird, sollte angegeben werden, dass Benutzereingaben zulĂ€ssig sind (Whiptail-MenĂŒs werden angezeigt). Wenn es ĂŒber Cron gestartet wird, sollte dies nicht der Fall sein, und keine Whiptail-MenĂŒs sollten das Skript hĂ€ngen lassen.
Zuerst teste ich G_USER_INPUTS=0
und wenn ich das Skript manuell starte, logge ich mich ein:
This environments allows user inputs
sonst wenn mit cron anfangen:
This environment does not allow user inputs
Als nĂ€chstes versuche ich mein Skript folgendermaĂen zu Ă€ndern:
#!/bin/bash
export G_USER_INPUTS=0
date > /mnt/rpi/backup.log && /DietPi/dietpi/dietpi-backup 1 && (echo "Backup: DONE. " >> /mnt/rpi/backup.log && tar zcfv /mnt/rpi/backup.tar.gz /mnt/backup/dietpi-backup/ && echo "Tar backup: DONE. " >> /mnt/rpi/backup.log && rclone copy /mnt/rpi/backup.tar.gz dysk: && echo "Copy to GDrive: DONE. " >> /mnt/rpi/backup.log && rm -r /mnt/rpi/backup.tar.gz && echo "Remove tar: DONE." >> /mnt/rpi/backup.log && reboot) || echo "Backup failed!" >> /mnt/rpi/backup.log
und dietpi-backup.log ist noch leer, aber backup.log:
als cron gestartet wurde und dieses Skript automatisch startet:
pon, 9 lip 2018, 18:54:01 CEST
Backup failed!
als ich das Skript manuell startete:
pon, 9 lip 2018, 18:58:40 CEST
Backup: DONE.
Tar backup: DONE.
Copy to GDrive: DONE.
Remove tar: DONE.
Es ist sehr nervig ... als nÀchstes hat mein Skript nur:
#!/bin/bash
export G_USER_INPUTS=0
/DietPi/dietpi/dietpi-backup 1
und funktioniert immer noch nicht, wenn dieses Skript von cron gestartet wird.
Das Problem ist immer noch, dass Dietpi-Backup von Cron ab Version 6.10 gestartet wurde. Ich denke, das ist ein Problem mit den Ănderungen, die Sie in Version 6.10 im Dietpi-Backup-Skript vorgenommen haben.
dietpi-backup.log ist noch leer
@eljotx
Vielen Dank fĂŒr Ihre Testanstrengungen.
Ich werde unsere verÀnderten durchgehen. Habe bisher keine Ahnung. Zumindest nach Ihren Tests hÀngt das Skript tatsÀchlich nicht (whiptail / G_USER_INPUTS ist nicht das Problem), aber es schlÀgt fehl.
Einige eigene Tests durchgefĂŒhrt:
[......] Checking for (elevated) root access
Nach dem Kommentieren der Root-BenutzerprĂŒfung fĂŒhrt die AusfĂŒhrung innerhalb von dietpi-backup
ĂŒber cron zu:
[FAILED] RootFS is currently Read Only, unable to continue.
Aber:
root@VM-Jessie:~# G_CHECK_ROOTFS_RW
[ OK ] Root access verified.
[ OK ] DietPi-Drive_Manager | RootFS R/W access verified.
@eljotx
tput
ist das Problem:
tput: No value for $TERM and no -T specified
Fix: https://github.com/Fourdee/DietPi/commit/82ac7b32d32dca9db4fdb824c7ead80174844090
Dieser Patch behebt auch ein anderes Problem: "run_ntpd 1", das tĂ€glich oder stĂŒndlich von cron ausgefĂŒhrt wird, synchronisiert die Zeit nicht (der Zeitstempel von / var / lib / systemd / clock Ă€ndert sich nicht).
@kmakisara
Jep du hast recht, das macht Sinn.
Um zu vermeiden, dass manuelle Skripte bearbeitet werden, um Korrekturen anzuwenden, sollten alle mit demselben Problem Folgendes tun: wget https://raw.githubusercontent.com/Fourdee/DietPi/82ac7b32d32dca9db4fdb824c7ead80174844090/dietpi/func/dietpi-globals -O /DietPi/dietpi/func/dietpi-globals
Ich denke, einige unserer offenen Fragen hÀngen damit zusammen. Wenn run_ntpd
in cron.hourly fehlschlÀgt, wird dietpi-logclear
auch danach nicht mehr aufgerufen, was zum AuffĂŒllen von / var / log fĂŒhrt: https://github.com/Fourdee/DietPi/issues/ 1920
Ich frage mich nur, warum dieses Problem zuerst mit Version 6.10 + aufgetreten ist, da wir bereits zuvor tput
in unseren Cron-Jobs verwendet haben.
Vielleicht kann jemand die VerĂ€nderung finden, die die Probleme verursacht hat, damit wir wissen, wie wir uns in Zukunft besser darum kĂŒmmern können:
tput cuu
und tput cols
in beiden FĂ€llen sowie tput ed
bei jeder anderen DietPi-Benachrichtigung beim Löschen der Verarbeitungsanimation aufgerufen.Weitere Tests dazu:
root@VM-Stretch:/tmp# cat /etc/cron.minutely/test
#!/bin/bash
echo "$TERM" &> /tmp/cron.test
tput ed &>> /tmp/cron.test
echo 'finish' &>> /tmp/cron.test
root@VM-Stretch:/tmp# cat cron.test
dumb
tput: No value for $TERM and no -T specified
$TERM
auf cron ist auf dumb
tput
behauptet, dass es keinen Wert fĂŒr die Variable gibt, auch wenn dieser ungĂŒltig ist.root@VM-Stretch:/tmp# TERM='dumb' tput cols
237
root@VM-Stretch:/tmp# export TERM='dumb' tput cols
root@VM-Stretch:/tmp# export TERM='dumb' tput cols && echo continue
continue
Da ungĂŒltiges $ TERM zu keinem Fehler fĂŒhrt (nur zu keiner Ausgabe von tput), scheint der Fehler von cron tput damit zu zusammenhĂ€ngen, dass -T
fehlt, [[ -t 0 ]]
zu false fĂŒhrt. Vielleicht hat sich auch das vorher anders verhalten. Letztes ncurses-bin
APT-Update am 15.02.2018: http://ftp.de.debian.org/debian/pool/main/n/ncurses/
Wir hatten bereits Probleme mit nicht interaktiven / ungĂŒltigen Terminals. Beenden Sie daher jetzt Dietpi- * Skripte, wenn leere $ TERM oder ' unknown
' gefunden werden: https://github.com/Fourdee/DietPi/blob/ Testen / Dietpi / Funk / Dietpi-Globals # L30 -L35
tput
bzw. andere Befehle aufzurufen, die ein gĂŒltiges Terminal benötigen.Test auf v6.9:
root<strong i="6">@DietPi</strong>:/tmp# cat cron.test
dumb
tput: No value for $TERM and no -T specified
finish
Das APT-Update enthĂ€lt keine Cron und / oder FlĂŒche (Reduzierung durch getestete, nicht verwandte Pakete):
apt-get dist-upgrade
und Neustart stoppt cron die AusfĂŒhrung nach einem Eingabefehler nicht:root<strong i="15">@DietPi</strong>:/tmp# cat /etc/cron.minutely/test
#!/bin/bash
echo "$TERM" &> /tmp/cron.test
[[ -t 0 ]] && echo 'interactive' &>> /tmp/cron.test
tput ed &>> /tmp/cron.test
echo 'finish' &>> /tmp/cron.test
root<strong i="16">@DietPi</strong>:/tmp# cat cron.test
dumb
tput: No value for $TERM and no -T specified
finish
dietpi-update
bis v6.11 master: Sehr seltsam, immer noch kein Problem ...root<strong i="22">@DietPi</strong>:/tmp# cat cron.test
dumb
tput: No value for $TERM and no -T specified
finish
root<strong i="27">@DietPi</strong>:/tmp# cat /etc/cron.minutely/test
#!/bin/bash
echo "$TERM" &> /tmp/cron.test
[[ -t 0 ]] && echo 'interactive' &>> /tmp/cron.test
tput ed &>> /tmp/cron.test
/DietPi/dietpi/dietpi-backup 1 &>> /tmp/cron.test
echo 'finish' &>> /tmp/cron.test
root<strong i="28">@DietPi</strong>:/tmp# cat cron.test
dumb
tput: No value for $TERM and no -T specified
[......] Checking for (elevated) root accesstput: No value for $TERM and no -T specified
/DietPi/dietpi/func/dietpi-globals: line 266: ( 38 + 6 ) / : syntax error: operand expected (error token is "/ ")
finish
dietpi-globals
v6.9:root<strong i="34">@DietPi</strong>:/tmp# cat cron.test
dumb
tput: No value for $TERM and no -T specified
Checking for (elevated) root accesstput: No value for $TERM and no -T specified
/DietPi/dietpi/func/dietpi-globals: line 308: ((: lines=(38+6)/ : syntax error: operand expected (error token is "/ ")
tput: No value for $TERM and no -T specified
[ OK ] Root access verified.
DietPi-Run_ntpd | systemctl restart systemd-timesyncdtput: No value for $TERM and no -T specified
/DietPi/dietpi/func/dietpi-globals: line 308: ((: lines=(38+6)/ : syntax error: operand expected (error token is "/ ")
[.. ] tput: No value for $TERM and no -T specified
[ OK ] DietPi-Run_ntpd | systemctl restart systemd-timesyncd
[ INFO ] DietPi-Run_ntpd | NTPD: Waiting for completion of systemd-timesyncd (1/60)
[ OK ] DietPi-Run_ntpd | NTPD: systemd-timesyncd synced
[ OK ] NTPD: time sync | Completed
finish
- Okay, es hĂ€ngt mit globalen Ănderungen zusammen, aber da tput
fehlgeschlagen ist und nicht, warum werden unsere Skripte jetzt beendet und nicht auf Version 6.9 beendet?
Verwandte Ănderungen identifiziert: https://github.com/Fourdee/DietPi/blob/master/dietpi/func/dietpi-globals#L266
local lines=$(( (${#input_string}+6)/$(tput cols) ))
fĂŒhrt zum vollstĂ€ndigen Beenden des Skripts, wĂ€hrend (vorherige)
local lines
(( lines=(${#input_string}+6)/$(tput cols) ))
zeigte den Fehler, lieĂ aber das Skript weiterlaufen (siehe oben).
Fix https://github.com/Fourdee/DietPi/commit/82ac7b32d32dca9db4fdb824c7ead80174844090 funktioniert und ist auch die sauberste Lösung, da tput
in nicht interaktiven Shells vollstĂ€ndig ĂŒbersprungen werden. Um jedoch ausfallsicher zu sein, sollten wir zur vorherigen Methode zurĂŒckkehren, um zuerst die Variable zu deklarieren und anschlieĂend in der arithmetischen Umgebung einen Wert zuzuweisen: Commit done https://github.com/Fourdee/DietPi/commit/0f18aa4dc0af8ab910a0173dce8849d5b53c30b0
@eljotx @kmakisara
Um ein Gebot zu bereinigen, habe ich ein neues Problem eröffnet. Versuchen Sie, das dort erwĂ€hnte Update anzuwenden, und melden Sie es zurĂŒck, wenn alle Probleme behoben sind :
Ich werde dieses Problem zugunsten des neuen schlieĂen.
Ich konnte erfolgreich in meine v6.13 ssh, aber es wĂŒrde gleich danach hĂ€ngen.
Der Befehl "tput cols" gab tput: unknown terminal "rxvt-256color" aus , was zu einem leeren Wert in Zeile 328 der dietpi-Anmeldung fĂŒhrte, sodass er nach dem erfolgreichen Lesen der Datenbank beim ersten Start fĂŒr immer hĂ€ngen blieb.
Das Exportieren von TERM = xterm, einem hÀsslichen Hack, schien das Anmeldeskript behoben zu haben und kann nun mit der Installation beginnen.
Wenn dies der falsche Abschnitt ist, haben Sie bitte etwas Geduld, da ich nicht wirklich weiĂ, wie man Github-Probleme verwendet. Ich habe diesen Thread nach stundenlangem nutzlosem googeln nach einem Fehler gefunden. Wenn Sie ihn verschieben, bleibt möglicherweise ein Rest ĂŒber rxvt-256color-Fehler ĂŒbrig, falls jemand das gleiche Problem hat.
Freundliche GrĂŒĂe!
@ Wuhei
Hallo,
Danke fĂŒr den Bericht und die Lösung đ
Welchen SSH-Client verwenden Sie?
@ Vierer
Ich habe dafĂŒr eine separate Ausgabe eröffnet. Identifizierte das Problem: https://github.com/Fourdee/DietPi/issues/2034
@ Wuhei
Nachdem Sie sich bei SSH angemeldet haben, versuchen Sie bitte: export TERM='xterm-256color'
âŹ: Ah, das ist im Grunde das, was Sie bereits herausgefunden haben đ.
Wenn dies funktioniert, können Sie /etc/profile.d/
ein Skript hinzufĂŒgen, das Folgendes enthĂ€lt:
[[ $SSH_TTY ]] && [[ $TERM =~ 256 ]] && export TERM='xterm-256color'
xterm-256color
, was von DietPi unterstĂŒtzt wird.Eine Alternative wĂ€re, ein Paket zu installieren, das mehr Terminaldefinitionen enthĂ€lt: G_AGI ncurses-term
@Fourdee OpenSSH_7.7p1, OpenSSL 1.1.0h unter Arch Linux
@MichaIng danke froh, dass ich zufÀllig helfen konnte!
Bitte denken Sie daran, dass ich ein schlechter Systemadministrator bin. Wenn ich diesem Artikel von Tom Ryder folge, habe ich herausgefunden, dass ich eine ziemlich falsch konfigurierte Terminal "Deklaration" -Konfiguration hatte.
Am Ende war das Problem fĂŒr mich behoben
Ich konnte die terminfo-Datei nicht auf meinen pi scp, da scp nicht installiert ist (vielleicht sollten Sie sie zusammen mit dem Dropbear-Server installieren?), Also habe ich sie auf einen Server hochgeladen, den ich besitze, und sie einfach vom pi heruntergeladen.
Ich bin froh, dass ich helfen konnte, Prost und entschuldige mich noch einmal fĂŒr das Chaos - rock on!
@ Wuhei
Jep, das Setzen von $ TERM innerhalb von /root/.bashrc
funktioniert natĂŒrlich auch, wenn es zu /etc/profile[.d/] hinzugefĂŒgt wird, wird es systemweit fĂŒr alle Benutzer gelöst, was eine Lösung ist, die wir mit DietPi anstreben wĂŒrden.
Der Artikel, den Sie verlinkt haben, ist ziemlich nett und erklĂ€rt alles und die Möglichkeiten sehr gut đ. Sie haben den erforderlichen Terminaltyp also grundsĂ€tzlich manuell installiert. In dem Artikel wird auch das Paket ncurses-term
als Option zur Installation einer Vielzahl von Terminaldefinitionen erwĂ€hnt. Aber um DietPi schlank zu halten, möchte ich dieses Paket fĂŒr solche seltenen FĂ€lle nicht vorinstallieren. Verwenden Sie stattdessen besser die bashrc / profile-Lösung. Es ist auch möglich, einfach die TerminalunterstĂŒtzung zu ĂŒberprĂŒfen, bevor das Update auf die SSH-Anmeldung angewendet wird.
Zum Testen mit dem PuTTY-Client: PuTTY> Connection
> Data
> Terminal-type string
Informationen zur Installation von SCP: Es gibt verschiedene andere DateiĂŒbertragungsprotokolle, FTP, SFTP oder Netzwerklaufwerke NFS, SMB, um Dateien zu ĂŒbertragen. Ich wĂŒrde keine Vorinstallation durchfĂŒhren, sondern dem Benutzer die Wahl ĂŒberlassen, wie Dateien vom Client zum Server ĂŒbertragen werden sollen. USB-Stick, externes Laufwerk ist natĂŒrlich auch möglich oder einfach kopieren und in SSH-Terminal einfĂŒgen, falls. Aber als allgemeine Lösung wĂŒrde ich trotzdem einen der beiden oben genannten Wege wĂ€hlen.
Hilfreichster Kommentar
@Fourdee OpenSSH_7.7p1, OpenSSL 1.1.0h unter Arch Linux
@MichaIng danke froh, dass ich zufÀllig helfen konnte!
Bitte denken Sie daran, dass ich ein schlechter Systemadministrator bin. Wenn ich diesem Artikel von Tom Ryder folge, habe ich herausgefunden, dass ich eine ziemlich falsch konfigurierte Terminal "Deklaration" -Konfiguration hatte.
Am Ende war das Problem fĂŒr mich behoben
Ich konnte die terminfo-Datei nicht auf meinen pi scp, da scp nicht installiert ist (vielleicht sollten Sie sie zusammen mit dem Dropbear-Server installieren?), Also habe ich sie auf einen Server hochgeladen, den ich besitze, und sie einfach vom pi heruntergeladen.
Ich bin froh, dass ich helfen konnte, Prost und entschuldige mich noch einmal fĂŒr das Chaos - rock on!