This commit is contained in:
kyodev 2017-08-17 10:49:12 +02:00
parent 56f60ab620
commit c78b1ba8a6
4 changed files with 843 additions and 129 deletions

159
docs/scripts/getInfo.md Normal file
View File

@ -0,0 +1,159 @@
# getInfo
> c'est un script bash qui rassemble un certain nombre d'informations techniques sur la configuration d'un PC
> le rapport est au format markdown
> il propose un export du rapport sur un pastebin pour partager les informations, par défaut le paste sera
conservé 7 jours
> normalement, aucunes données confidentielles ne sont contenues dans le rapport
> majoritairement, tout est collecté avec les droits utilisateur, sauf dmesg et la config réseau ssid de
NetworkManager
> l'installation du script est possible, en option. il se mettra éventuellement à jour automatiquement
## chargement et lancement du script:
```shell
wget -O getInfo https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo
chmod +x getInfo
```
_remarque:_ lancer le script avec les droits root, permettra d'accéder à dmesg
```shell
./getInfo
```
```text
_ ___ __
__ _ ___| |_|_ _|_ __ / _| ___
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/
version 1.0.0b1 - 17/08/2017
............
exporter sur un pastebin par défaut? [o/N]
le rapport est disponible en local, fichier: getInfo_rapport.md
vous pouvez le visualiser avec getInfo -l
```
* sauf, à lancer le script avec les privilèges root, les extraits des erreurs/warnings/critiques de dmesg ne sont
pas rapportés, ce qui peut être dommage en recherche de diagnostics
* export ou non, le rapport au format markdown est disponible dans le répertoire courant, sous le nom:
**getInfo_rapport.md**
* par défaut, l'export sur un pastebin ne se fera pas (touche Entrée)
* répondre o + \[ entrée \] permet de récupérer un lien où le paste sera visible
```text
exporter sur un pastebin par défaut? [o/N] o
votre paste:
https://www.pastery.net/dznaxr/
le rapport est disponible en local, fichier: getInfo_rapport.md
vous pouvez le visualiser avec getInfo -l
```
si vous n'avez pas exporté de suite, vous pouvez le faire avec la commande `./getInfo -p` ou revoir à l'écran
le rapport avec `./getInfo -l`
### exemple de rapport
[getInfo_rapport](getInfo_rapport.md)
## help
```shell
./getInfo -h
```
```text
_ ___ __
__ _ ___| |_|_ _|_ __ / _| ___
/ _' |/ _ \ __|| || '_ \| |_ / _ \
| (_| | __/ |_ | || | | | _| (_) |
\__, |\___|\__|___|_| |_|_| \___/
|___/
version 1.0.0 - 17/08/2017
----------------------------------------------------------------------
./getInfo : exécution normale
getInfo : exécution normale si script installé dans le système
options:
-d, --dmesg : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
-h, --help : affichage aide
--ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
-l, --list : afficher le rapport existant
-p, --paste : exporte le rapport existant
-s, --ssid : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
-i, --install : installation du script dans le système, droits root requis
-r, --remove : suppression du script dans le système, droits root requis
-u, --upgrade : upgrade script si maj possible
-v, --version : version du script, en ligne et en cours d'exécution
```
## options diverses
* l'extrait dmesg peut être isolé avec `./getInfo -d` ou `getInfo -d`, lancé avec les droits **root**.
_getInfo_rapport.md_ contiendra uniquement cet extrait
* un rapport _getInfo_rapport.md_ existant peut être exporté sur le pastebin avec `./getInfo -p`
ou `getInfo -p`
* `./getInfo -l` ou `/getInfo -l` permet d'afficher un rapport _getInfo_rapport.md_ existant
* `./getInfo --ip` ou `getInfo --ip` affiche les IPs publiques du PC (ipV4 et/ou ipV6)
* `./getInfo -s` ou `getInfo --ssid` affiche seulement (pas de rapport construit) la configuration des ssid
de NetworkManger. Attention, cela affichera probablement les mot de passe des réseaux wifi configurés.
Les **droits root** sont requis
## installation et exploitation du script
* `./getInfo -i` **droits root** requis. Installation du script dans le système, pour
exploitation plus fréquente. Le script téléchargé sera effacé du répertoire courant. Le lancement se fera
donc par `getInfo`. Le script sera mis à jour automatiquement, avec une périodicité hebdomadaire.
* `getInfo -u` mise à jour manuelle si possible, du script. Cette opération étant
automatiquement lancée toutes les semaines si le script est installé.
* `getInfo -r` **droits root** requis. Suppression du script du système.
* `getInfo -v` affiche la version du script et la version en ligne.
## sources
sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getInfo)
## changelog
sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getInfo_changelog.md)
## contact
pour tout problème ou suggestion concernant ce script, n'hésitez pas à ouvrir une issue
[Framagit](https://framagit.org/kyodev/kyopages/issues)
IRC freenode: ##sdeb
## license
[LPRAB/WTFPL](https://framagit.org/kyodev/kyopages/blob/master/scripts/LICENSE.md)
## remerciements
* [neofetch](https://github.com/dylanaraps/neofetch) pour du code sur la détection système.
neofetch est un successeur dynamique de screenfetch avec du code sympa
* [wireless-info](https://github.com/UbuntuForums/wireless-info) pour savoir comment détecter les managers
de réseaux
* [pastery.net](https://www.pastery.net/) pour héberger des pastebin au format markdown

View File

@ -0,0 +1,473 @@
# getInfo 1.0.0 sur 1101HA / Linux
Rapport au 17 août 2017 10:20 +0200
## système
**CPU: Intel Atom Z520 (1)(2) @ 0.8 - 1.3 GHz [55.0°C]**
**GPU: Intel Corporation System Controller Hub (SCH Poulsbo) Graphics Controller**
**type de boot: Legacy boot**
**Debian GNU/Linux 9 (stretch) 9.1**
```
architecture: 32bits, i686
uname: 4.9.0-3-686-pae i686 GNU/Linux
BOOT_IMAGE=/boot/vmlinuz-4.9.0-3-686-pae, ro, quiet
résolution: 1366x768 @ 60Hz
serveur d'affichage: x11
desktop (DE): MATE
window manager: Metacity (Marco)
shell actif: bash 4.4.12(1)
shells installés: sh dash bash rbash
disque(s): 9,1G / 43G (22%)
batteries(s): 100% [Full]
dernier boot: 2017-08-15 11:53:49+0200, uptime: depuis 1 jour, 22 h, 26 mn
192.168.1.129 pour wlp1s0 (wifi)
```
## processeur / mémoire
```
CPU: Intel Atom Z520 (1)(2) @ 0.8 - 1.3 GHz [55.0°C]
adressage: 32 bits physical, 32 bits virtual
bogomips: 2662.55
mémoire Ram utilisée/totale: 547Mo / 994Mo
mémoire système: total used free shared buff/cache available
Mem: 994M 475M 121M 72M 398M 303M
Swap: 3,7G 87M 3,6G
Total: 4,7G 562M 3,8G
```
flags cpu:
```
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx est tm2 ssse3 xtpr pdcm movbe lahf_lm tpr_shadow vnmi flexpriority dtherm
```
## graphisme
**GPU: Intel Corporation System Controller Hub (SCH Poulsbo) Graphics Controller**
**résolution: 1366x768 @ 60Hz**
**lspci -nnvvv | grep -iEA 13 '^[0-9]+.*vga|display|3d'** (matériel)
```
00:02.0 VGA compatible controller [0300]: Intel Corporation System Controller Hub (SCH Poulsbo) Graphics Controller [8086:8108] (rev 07) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. System Controller Hub (SCH Poulsbo) Graphics Controller [1043:83ce]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 22
Region 0: Memory at f3f80000 (32-bit, non-prefetchable) [size=512K]
Region 1: I/O ports at c880 [size=8]
Region 2: Memory at d0000000 (32-bit, non-prefetchable) [size=256M]
Region 3: Memory at f3f40000 (32-bit, non-prefetchable) [size=256K]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
```
**glxinfo | grep 'OpenGL version string:'**
```
OpenGL version string: 3.0 Mesa 13.0.6
```
**xrandr --query | grep '^ *[0-9]' | head -n 10** (10 premières résolutions possibles)
```
1366x768 60.02*+
1360x768 59.80 59.96
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
960x600 60.00
960x540 59.99
800x600 60.00 60.32 56.25
840x525 60.01 59.88
```
**grep -E '\(WW\)|\(EE\)|\(NI\)|\(\?\?\)' /var/log/Xorg.*.log /home/user/.local/share/xorg/Xorg.*.log** (extrait xorg.log)
```
/var/log/Xorg.0.log: (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
/var/log/Xorg.0.log:[ 21.977] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
/var/log/Xorg.0.log:[ 22.614] (WW) Warning, couldn't open module psb
/var/log/Xorg.0.log:[ 22.615] (EE) Failed to load module "psb" (module does not exist, 0)
/var/log/Xorg.0.log:[ 22.621] (WW) Warning, couldn't open module psbdrv
/var/log/Xorg.0.log:[ 22.622] (EE) Failed to load module "psbdrv" (module does not exist, 0)
/var/log/Xorg.0.log:[ 22.716] (WW) Falling back to old probe method for fbdev
/var/log/Xorg.0.log:[ 22.725] (WW) Falling back to old probe method for vesa
/var/log/Xorg.0.log:[ 24.511] (EE) modeset(0): glamor initialization failed
/var/log/Xorg.0.log:[ 24.915] (EE) AIGLX: reverting to software rendering
/var/log/Xorg.1.log: (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
/var/log/Xorg.1.log:[126490.922] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
/var/log/Xorg.1.log:[126491.821] (WW) Warning, couldn't open module psb
/var/log/Xorg.1.log:[126491.822] (EE) Failed to load module "psb" (module does not exist, 0)
/var/log/Xorg.1.log:[126491.823] (WW) Warning, couldn't open module psbdrv
/var/log/Xorg.1.log:[126491.823] (EE) Failed to load module "psbdrv" (module does not exist, 0)
/var/log/Xorg.1.log:[126491.936] (WW) Falling back to old probe method for fbdev
/var/log/Xorg.1.log:[126491.974] (WW) Falling back to old probe method for vesa
/var/log/Xorg.1.log:[126497.482] (EE) modeset(0): glamor initialization failed
/var/log/Xorg.1.log:[126497.921] (EE) AIGLX: reverting to software rendering
```
### modules video
liste non garantie complète
```
cpufreq_conservative 16384 0
uvcvideo 77824 0
videobuf2_vmalloc 16384 1 uvcvideo
videobuf2_memops 16384 1 videobuf2_vmalloc
videobuf2_v4l2 20480 1 uvcvideo
videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2
videodev 131072 3 uvcvideo,videobuf2_core,videobuf2_v4l2
media 28672 2 uvcvideo,videodev
gma500_gfx 163840 2
drm_kms_helper 114688 1 gma500_gfx
video 36864 2 eeepc_laptop,gma500_gfx
drm 253952 4 gma500_gfx,drm_kms_helper
i2c_algo_bit 16384 1 gma500_gfx
usbcore 184320 6 uvcvideo,usbhid,ehci_hcd,uhci_hcd,btusb,ehci_pci
```
## localisation
**grep -vE '#|^$' /etc/default/locale**
```
LANG=fr_FR.UTF-8
```
**cat /etc/timezone**
```
Europe/Paris
```
**setxkbmap -query**
```
rules: evdev
model: pc105
layout: fr,fr
variant: oss,
options: terminate:ctrl_alt_bksp
```
**grep -vE '#|^$' /etc/default/keyboard**
```
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT="oss"
XKBOPTIONS="terminate:ctrl_alt_bksp"
BACKSPACE="guess"
```
## sources list
```
/etc/apt/sources.list: deb http://deb.debian.org/debian/ stretch main contrib non-free
/etc/apt/sources.list: deb http://deb.debian.org/debian-security stretch/updates main contrib non-free
/etc/apt/sources.list: deb http://deb.debian.org/debian/ stretch-updates main contrib non-free
```
dernière mise à jour **apt**: mercredi 16 août 2017, 18:59:07 (UTC+0200)
**5 paquet(s) installé(s) inutile(s)**, vous pouvez utiliser: apt autoremove. paquet(s) concerné(s):
```
gir1.2-packagekitglib-1.0 packagekit-tools packagekit libpackagekit-glib2-18 python3-dbus [1.2.4-1+b1]
```
**des paquets devraient être mis à jour:**
**apt list --upgradable**
```
git/stable 1:2.11.0-3+deb9u1 i386 [upgradable from: 1:2.11.0-3]
git-man/stable 1:2.11.0-3+deb9u1 all [upgradable from: 1:2.11.0-3]
gitk/stable 1:2.11.0-3+deb9u1 all [upgradable from: 1:2.11.0-3]
libgd3/stable 2.2.4-2+deb9u1 i386 [upgradable from: 2.2.4-2]
libsoup-gnome2.4-1/stable 2.56.0-2+deb9u1 i386 [upgradable from: 2.56.0-2]
libsoup2.4-1/stable 2.56.0-2+deb9u1 i386 [upgradable from: 2.56.0-2]
linux-compiler-gcc-6-x86/stable 4.9.30-2+deb9u3 i386 [upgradable from: 4.9.30-2+deb9u2]
linux-headers-4.9.0-3-686-pae/stable 4.9.30-2+deb9u3 i386 [upgradable from: 4.9.30-2+deb9u2]
linux-headers-4.9.0-3-common/stable 4.9.30-2+deb9u3 all [upgradable from: 4.9.30-2+deb9u2]
linux-image-4.9.0-3-686-pae/stable 4.9.30-2+deb9u3 i386 [upgradable from: 4.9.30-2+deb9u2]
linux-kbuild-4.9/stable 4.9.30-2+deb9u3 i386 [upgradable from: 4.9.30-2+deb9u2]
linux-libc-dev/stable 4.9.30-2+deb9u3 i386 [upgradable from: 4.9.30-2+deb9u2]
```
il y a des **paquet(s) dans un état non installé**. ce n'est pas forcément grave, mais ça peut être examiné. paquet(s) concerné(s):
```
rc pavucontrol 3.0-3.1
rc rtkit 0.11-4+b1
```
## disque(s)
disque(s): 9,1G / 43G (22%)
**grep -vE '#|^$' /etc/fstab** (fstab)
```
UUID=c7a795ce-71d8-4d01-b589-281593434b7f / ext4 errors=remount-ro 0 1
UUID=426c6d02-3471-4158-b6f3-f1348c8c2d54 /home ext4 defaults 0 2
/dev/sda6 none swap sw 0 0
```
**lsblk -fi -o +SIZE -o +OWNER** (disques)
```
NAME FSTYPE LABEL UUID MOUNTPOINT OWNER
sda root
|-sda1 ext4 sys c7a795ce-71d8-4d01-b589-281593434b7f / root
|-sda2 root
|-sda3 ext4 sauvegarde b0b0d311-2c4c-4db5-a1ae-b3bd7720cdaf root
|-sda5 ext4 home 426c6d02-3471-4158-b6f3-f1348c8c2d54 /home root
`-sda6 swap 3264f09c-87ed-4731-8132-3e929d120c65 [SWAP] root
```
**df -h ...** (utilisation disques)
```
Sys. de fichiers Monté sur Type Taille Utilisé Dispo Uti%
/dev/sda1 / ext4 14G 4,7G 8,4G 36%
/dev/sda5 /home ext4 28G 4,4G 24G 16%
```
**grep -Ev '#|^$' /etc/initramfs-tools/conf.d/resume** (resume)
```
RESUME=auto
```
**types de disque**
* ata: sda
* usb: -
* mmc: -
* nvme: -
## réseau
**IP locale(s):**
```
192.168.1.129 pour wlp1s0 (wifi)
```
**Passerelle(s):**
```
192.168.1.5 pour wlp1s0
```
l'IP publique n'apparaît pas pour ne pas être publiée, mais elle peut être connue avec:
`./getInfo --ip ou getInfo --ip (script installé)`
**lspci -nnk | grep -iEA 3 'network|ethernet'**
```
01:00.0 Network controller [0280]: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) [168c:002b] (rev 01)
Subsystem: AzureWave AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card [1a3b:1089]
Kernel driver in use: ath9k
Kernel modules: ath9k
03:00.0 Ethernet controller [0200]: Qualcomm Atheros AR8132 Fast Ethernet [1969:1062] (rev c0)
Subsystem: ASUSTeK Computer Inc. AR8132 Fast Ethernet [1043:14e5]
Kernel driver in use: atl1c
Kernel modules: atl1c
```
**ip address show**
```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 00:26:18:69:ec:c2 brd ff:ff:ff:ff:ff:ff
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:25:d3:43:de:42 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.129/24 brd 192.168.1.255 scope global dynamic wlp1s0
valid_lft 29950sec preferred_lft 29950sec
inet6 2a01:e35:8bf2:37b0:f9ef:6cdb:f8a9:d419/64 scope global noprefixroute dynamic
valid_lft 86359sec preferred_lft 86359sec
inet6 fe80::96a8:dcbc:b798:370/64 scope link
valid_lft forever preferred_lft forever
```
**iwconfig**
```
wlp1s0 IEEE 802.11 ESSID:"freemfi"
Mode:Managed Frequency:2.452 GHz Access Point: 14:0C:76:54:74:91
Bit Rate=65 Mb/s Tx-Power=15 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=67/70 Signal level=-43 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:86 Missed beacon:0
```
**/etc/network/interfaces**
```
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
```
**ip route show**
```
default via 192.168.1.5 dev wlp1s0 proto static metric 600
169.254.0.0/16 dev wlp1s0 scope link metric 1000
192.168.1.0/24 dev wlp1s0 proto kernel scope link src 192.168.1.129 metric 600
```
**/etc/resolv.conf**
```
nameserver 37.187.16.17
nameserver 52.174.55.168
nameserver 80.67.169.12
nameserver 80.67.169.40
nameserver 2a01:e00::1
nameserver 2a01:e00::2
```
### network managers
installé(s): **NetworkManager**
en fonctionnement: **/usr/sbin/NetworkManager --no-daemon**
### modules réseau
liste non garantie complète
```
ath9k 90112 0
ath9k_common 32768 1 ath9k
ath9k_hw 413696 2 ath9k,ath9k_common
ath 24576 3 ath9k_hw,ath9k,ath9k_common
mac80211 548864 1 ath9k
cfg80211 450560 4 mac80211,ath9k,ath,ath9k_common
wmi 16384 0
rfkill 20480 6 eeepc_laptop,bluetooth,cfg80211
```
**iwlist chan**
```
wlp1s0 14 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Channel 14 : 2.484 GHz
Current Frequency:2.452 GHz (Channel 9)
```
## Network Manager
**grep -vE '#|^$' /var/lib/NetworkManager/NetworkManager.state**
```
[main]
NetworkingEnabled=true
WirelessEnabled=true
WWANEnabled=true
```
**grep -vE '#|^$' /etc/NetworkManager/NetworkManager.conf**
```
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
```
## wifis à proximité
**nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list**
```
SSID BSSID MODE CHAN FRÉQ DÉBIT SIGNAL BARS SÉCURITÉ
FreeWifi 14:0C:76:54:74:92 Infra 9 2452 MHz 54 Mo/s 94 ▂▄▆█ --
FreeWifi_secure 14:0C:76:54:74:93 Infra 9 2452 MHz 54 Mo/s 94 ▂▄▆█ WPA2 802.1X
freemfi 14:0C:76:54:74:91 Infra 9 2452 MHz 54 Mo/s 79 ▂▄▆_ WPA2
KLAC2Free F4:CA:E5:D2:6E:74 Infra 11 2462 MHz 54 Mo/s 45 ▂▄__ WPA2
Bbox-10913089 E8:BE:81:B1:FE:B0 Infra 1 2412 MHz 54 Mo/s 42 ▂▄__ WPA1 WPA2
FreeWifi_secure F4:CA:E5:D2:6E:76 Infra 11 2462 MHz 54 Mo/s 37 ▂▄__ WPA2 802.1X
FreeWifi F4:CA:E5:D2:6E:75 Infra 11 2462 MHz 54 Mo/s 32 ▂▄__ --
FreeWifi 14:0C:76:F5:95:C9 Infra 3 2422 MHz 54 Mo/s 27 ▂___ --
Freebox-62E169 14:0C:76:F5:95:C8 Infra 3 2422 MHz 54 Mo/s 25 ▂___ WPA1
FreeWifi 7A:13:8E:BD:A0:B6 Infra 7 2442 MHz 54 Mo/s 24 ▂___ --
FreeWifi_secure 7A:13:8E:BD:A0:B7 Infra 7 2442 MHz 54 Mo/s 22 ▂___ WPA1 802.1X
FreeWifi F4:CA:E5:B0:DE:C1 Infra 11 2462 MHz 54 Mo/s 22 ▂___ --
Livebox-334E B4:A5:EF:D3:33:4C Infra 6 2437 MHz 54 Mo/s 20 ▂___ WPA2
-- 7A:13:8E:BD:A0:B5 Infra 7 2442 MHz 54 Mo/s 20 ▂___ WPA2
SFR WiFi FON 7A:95:04:06:F0:E5 Infra 11 2462 MHz 54 Mo/s 20 ▂___ --
GilBENETT BA:95:9A:05:36:E8 Infra 12 2467 MHz 54 Mo/s 20 ▂___ WEP
freebox_guillot 7A:13:8E:BD:A0:B4 Infra 7 2442 MHz 54 Mo/s 19 ▂___ WEP
Bbox-1836349E 64:7C:34:C6:C7:9C Infra 1 2412 MHz 54 Mo/s 17 ▂___ WPA1 WPA2
FreeWifi_secure 14:0C:76:F5:95:CA Infra 3 2422 MHz 54 Mo/s 17 ▂___ WPA2 802.1X
freebox_JACKY 68:A3:78:1D:F9:1C Infra 11 2462 MHz 54 Mo/s 17 ▂___ WPA1
FreeWifi 68:A3:78:0F:25:0A Infra 12 2467 MHz 54 Mo/s 17 ▂___ --
FreeWifi 06:7F:8F:C1:CF:82 Infra 3 2422 MHz 54 Mo/s 15 ▂___ --
-- 06:7F:8F:C1:CF:81 Infra 3 2422 MHz 54 Mo/s 15 ▂___ WPA2
FreeWifi_secure 06:7F:8F:C1:CF:83 Infra 3 2422 MHz 54 Mo/s 12 ▂___ WPA1 802.1X
orange 48:83:C7:25:0E:81 Infra 6 2437 MHz 54 Mo/s 12 ▂___ --
Livebox-CD70 48:83:C7:25:0E:80 Infra 6 2437 MHz 54 Mo/s 12 ▂___ WPA2
FreeWifi_secure F4:CA:E5:B0:DE:C2 Infra 11 2462 MHz 54 Mo/s 12 ▂___ WPA2 802.1X
FREEBOX_HABIB_2C 06:7F:8F:C1:CF:80 Infra 3 2422 MHz 54 Mo/s 10 ▂___ WPA1
FreeWifi_secure 68:A3:78:0F:25:0B Infra 12 2467 MHz 54 Mo/s 10 ▂___ WPA2 802.1X
mrowifi 68:A3:78:0F:25:09 Infra 12 2467 MHz 54 Mo/s 10 ▂___ WPA1
```
## périphériques USB
**lsusb**
```
Bus 003 Device 004: ID 13d3:5071 IMC Networks
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 0b05:b700 ASUSTek Computer, Inc. Broadcom Bluetooth 2.1
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
```
**lsusb -t**
```
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 2: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 2: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 2: Dev 3, If 2, Class=Vendor Specific Class, Driver=, 12M
|__ Port 2: Dev 3, If 3, Class=Application Specific Interface, Driver=, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
|__ Port 7: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 7: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
```
## analyse boot
durée de boot: 4.797s (kernel) + 25.807s (espace utilisateur) = 30.605s
**systemd-analyze blame | head -n 20**
```
6.575s NetworkManager-wait-online.service
5.844s loadcpufreq.service
5.175s dev-sda1.device
4.500s accounts-daemon.service
4.015s upower.service
3.917s networking.service
3.534s exim4.service
3.421s systemd-logind.service
3.348s apt-daily-upgrade.service
2.984s rsyslog.service
2.887s NetworkManager.service
2.783s avahi-daemon.service
2.772s bluetooth.service
2.710s ModemManager.service
2.246s apt-daily.service
1.466s systemd-fsck@dev-disk-by-uuid-426c6d02-3471-4158-b6f3-f1348c8c2d54.service
1.195s keyboard-setup.service
855ms systemd-tmpfiles-setup-dev.service
762ms polkit.service
706ms udisks2.service
```
## dmesg (erreur, warning ou critique)
**dmesg -l err** (erreur)
```
[ 10.780816] gma500 0000:00:02.0: trying to get vblank count for disabled pipe 0
[ 10.780912] gma500 0000:00:02.0: trying to get vblank count for disabled pipe 0
```
**dmesg -l warn** (warning)
```
[ 0.398049] pci 0000:03:00.0: [Firmware Bug]: disabling VPD access (can't determine size of non-standard VPD format)
[ 6.769087] systemd[1]: rtkit-daemon.service: Cannot add dependency job, ignoring: Unit rtkit-daemon.service is masked.
[ 9.587065] pmd_set_huge: Cannot satisfy [mem 0x3f800000-0x3fa00000] with a huge-page mapping due to MTRR override.
[ 11.234804] uvcvideo 3-7:1.0: Entity type for entity Extension 2 was not initialized!
[ 11.234821] uvcvideo 3-7:1.0: Entity type for entity Processing 3 was not initialized!
[ 11.234833] uvcvideo 3-7:1.0: Entity type for entity Camera 1 was not initialized!
```
_[rapport getInfo v1.0.0b1](https://kyodev.frama.io/kyopages/scripts/getInfo/)

View File

@ -1,14 +1,15 @@
#!/bin/bash
version=0.11.0
date="08/08/2017"
version=1.0.0
date="17/08/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
script="getInfo"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
urlNotice="https://kyodev.frama.io/kyopages/scripts/getInfo/"
##### license LPRAB/WTFPL
# auteur: simpledebian
# auteur: simpledeb
# contributeurs: kyodev
#####
@ -34,7 +35,7 @@ EOF
# detect system architecture, assign $architecture : 32bits, i686 | 64bits, amd64, return 1 on unknown architecture
# remarque, debian: dpkg --print-architecture affiche i386
f__architecture(){
f__architecture(){ # v08/2017 spécifique
case "$(uname -m)" in
amd64 | x86_64 )
architecture="64bits, amd64";;
@ -52,113 +53,155 @@ f__architecture(){
esac
}
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur
f__error() {
echo -e "\n$RED Erreur critique: $1 $COLOR"
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si upgrade($opType)
f__error() { # v16/08/2017
echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
exit 1
}
# affichage des paramètres en bleu, ligne vide à la fin
f__info() {
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
echo "$COLOR"
# affichage des paramètres en bleu, si $1=raw, pas d'espace en début de ligne, pas de ligne vide à la fin
f__info() { # v16/08/2017
if [ "$1" == "raw" ]; then depart=2;
else local espace=" "; local depart=1; fi
for (( i=$depart ; i<=$# ; i++ )); do echo -e "$espace$BLUE${!i}"; done
[ "$1" == raw ] && printf "$COLOR" || echo "$COLOR"
}
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
f__log(){
f__log(){ # v08/2017
if [ -w "$fileLogs" ]; then
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
else
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
fi
else
f__info "$fileLogs doit être activé"
fi
}
# test dépendances (commandes disponibles), $1 liste commandes ou $1...$x, si manquant, avertissement des commandes manquantes
f__requis(){
local dependsFail
for i in $@; do which $i &>/dev/null || dependsFail+="$i "; done
[ "$dependsFail" ] && f__error "commandes(s) manquante(s)" " vous devez avoir le(s) commande(s) ""$RED$dependsFail""$BLUE""pour exploiter ce script"
# test dépendances/paquets, $1 liste commande[>paquet] (ex: killall>psmisc)
# si manque, info commandes manquantes, si debian, proposition paquet à installer et SORTIE
# si $2=debOnly et si paquets manquants: return 1 et $debOnlyPackages ( $1=liste paquets )
# si $2=debOnly et si paquets présent: return 0 et $debOnlyPresents ( $1=liste paquets )
# attention priorité $debOnlyPackages sur $debOnlyPresents
f__requis(){ # v16/08/2017-3
local dependsMissing packagesMissing
unset debOnlyPackages debOnlyPresents
for i in $1; do
local command=$(cut -d '>' -f 1 <<< $i)
local package=$(cut -d '>' -f 2 <<< $i)
if [ "$2" == "debOnly" ]; then
if [ "$(which dpkg)" ]; then # package only et debian
LC_ALL=C dpkg --get-selections | grep -qE "^$package[[:space:]]+install" \
&& debOnlyPresents+="$package " || debOnlyPackages+="$package "
else f__error "dpkg n'est pas disponible sur ce système"; fi
elif [ -z "$(which $command)" ]; then
dependsMissing+="$command "
packagesMissing+="$package "
fi
done
[ "$debOnlyPackages" ] && debOnlyPackages=$(xargs <<< $debOnlyPackages) # trim début & fin
[ "$debOnlyPresents" ] && debOnlyPresents=$(xargs <<< $debOnlyPresents) # trim début & fin
[ "$debOnlyPackages" ] && return 1
[ "$debOnlyPresents" ] && return 0
if [ "$dependsMissing" ]; then
if [ -e /etc/debian_version ]; then f__error "paquet(s) manquant(s): " " $dependsMissing" \
" vous devriez exécuter:$GREEN apt install $packagesMissing"
else f__error "commandes(s) manquante(s): " "$dependsMissing"; fi
fi
}
# user ayant initié la session graphique, assigne $user_, testé avec mate, gnome, xfce. manque KDE
# sortie script sur erreur, gestion variable environnement pour personnaliser l'user avec:
# USER_INSTALL=user script
f__user(){
[ "$USER_INSTALL" ] && user_="$USER_INSTALL" # user_ via variable en environnement
if [ -z "$user_" ]; then # priorité à $USER_INSTALL
[ "$SUDO_UID" ] && user_id="$SUDO_UID" # sudo-gnome
echo "$XAUTHORITY" | grep -Eo '[0-9]+' && user_id="$(echo $XAUTHORITY | grep -Eo '[0-9]+')" || \
user_id="$(echo $XDG_RUNTIME_DIR | grep -Eo '[0-9]+')"
[ "$user_id" ] && user_="$(grep $user_id /etc/passwd | cut -d ":" -f 1 )" || \
user_="$(echo $XAUTHORITY | cut -d "/" -f 3)"
# return 1 sur echec ident user, return 2 sur absence home
# gestion variable environnement user avec: USER_INSTALL=user script
f__user(){ # v15/08/2017-4
local user_id
if [ "$USER_INSTALL" ]; then user_="$USER_INSTALL"; fi # user_ via variable environnement
if [ -z "$user_" ]; then # priorité à $USER_INSTALL
if [ "$SUDO_UID" ]; then user_id="$SUDO_UID"; fi # sudo
user_id=$(grep -qEo '[0-9]+' <<< "$XAUTHORITY") || user_id=$(grep -qEo '[0-9]+' <<< $XDG_RUNTIME_DIR)
if [ "$user_id" ]; then user_=$(grep $user_id /etc/passwd | cut -d ":" -f 1 )
else user_=$(echo $XAUTHORITY | cut -d "/" -f 3); fi
if [ -z "$user_" ] && [ "$LOGNAME" ] ; then user_=$(grep -v 'root' <<< $LOGNAME)
elif [ -z "$user_" ] && [ $(grep -v 'root' <<< $HOME) ]; then user_=$(cut -sd / -f 3 <<< $HOME)
elif [ -z "$user_" ]; then user_=$(grep -v 'root' <<< $(who | head -n1 | cut -d " " -f1))
elif [ -z "$user_" ] && [ $(grep -v 'not') <<< $(LC_ALL=C tty) ]; then user_=$(stat -c %U $(tty)); fi
fi
if [ -z "$user_" ]; then
echo -e "user indéterminé, pour contourner, lancer le script avec:\n USER_INSTALL=user $0 n" \
"merci contacter $projet $contact pour corriger ça"
return 1
fi
if [ ! -d "/home/$user_" ]; then
echo -e "répertoire '/home/$user_' INEXISTANT"
return 2
fi
[ "$user_" ] && [ -d "/home/$user_" ] && return 0 || echo " répertoire '/home/$user_' INEXISTANT"
f__error " user indéterminé, lancer le script avec:\n USER_INSTALL=user $0" \
"merci contacter $projet $contact pour corriger ça"
}
# test wget, $1 url à tester, sortie script sur erreur
f__wget_test(){
f__wget_test(){ # v07/2017
echo " $1"
wget -Sq --tries=1 --timeout=15 -O /dev/null "$1"
wget -Sq --tries=1 --timeout=15 --user-agent="$user_agent" -O /dev/null "$1"
f__error "Erreur wget" " réessayer et si persistance, contacter $projet $contact" " en indiquant les messages précédents."
}
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
fscript_cronAnacron(){
fscript_cronAnacron(){ # v17/08/2017
local dirAnacron="/home/$user_/.config/anacron"
local dirSpool="$dirAnacron/spool"
local fileAnacron="$dirAnacron/$script.anacrontab"
sed -i "/$script.anacrontab/d" /etc/crontab
case "$1" in
install )
install | upgrade )
mkdir -p "$dirAnacron"
# table anacron
echo "7 01 $script nice /opt/bin/$script --upgrade &>/dev/null" > "$fileAnacron"
## test: anacron journalier: echo "1 01 ""$script""test nice /opt/bin/$script --upgrade &>/dev/null" > "$fileAnacron"
chown -R --no-preserve-root "$user_": "$dirAnacron"
chmod -R --no-preserve-root ug+xw "$dirAnacron"
echo "7 01 $script nice /opt/bin/$script --upgrade" > "$fileAnacron"
## test: anacron journalier: echo "1 01 $script test nice /opt/bin/$script --upgrade 2>/dev/null" >> "$fileAnacron"
# création spool anacron utilisateur
mkdir -p "$dirSpool"
chown -R --no-preserve-root "$user_": "$dirSpool"
chmod -R --no-preserve-root ug+xw "$dirSpool"
# crontab pour activation horaire anacron
grep -q ".*$script.anacrontab" /etc/crontab || \
chown -R "$user_": "$dirAnacron" "$dirSpool"
if [ $EUID -eq 0 ]; then
# crontab pour activation horaire anacron
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab
service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC"
fi
[ "$(grep "$script" /etc/crontab)" ] || echo f__error "inscription crontab" \
"certains systèmes semblent poser poser problème, merci de rapporter ce bug à $projet $contact"
;;
remove )
rm "$dirSpool/$script"* &>/dev/null
sed -i "/$script.anacrontab/d" /etc/crontab
rm "$fileAnacron" &>/dev/null
rm "$dirSpool/$script" &>/dev/null
rmdir "$dirSpool" "$dirAnacron" &>/dev/null
service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC"
;;
esac
}
# mise à jour script si disponible
fscript_dl(){
# mise à jour script si dispo
fscript_dl(){ # v17/08/2017
if [ "$script_aJour" == "ok" ]; then return 0; fi
local dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp"
opType="upgrade"
wget -q --show-progress --tries=2 --timeout=15 -O "$dirTemp$script" "$urlScript"
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
chmod a+rwx "$dirTemp$script"
chmod 755 "$dirTemp$script"
chown "$user_": "$dirTemp$script"
cp -d "$dirTemp$script" /opt/bin/"$script"
rm -rf "$dirTemp"
fscript_cronAnacron "upgrade"
f__info "\n $script mis à jour en version $versionScript"
f__log "$script mis à jour en version $versionScript"
$0 upgrade # spécifique getFlash, script mis à jour, on relance le script en upgrade pour le plugin
exit 0
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
fscript_get_version(){
fscript_get_version(){ # v08/2017
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
if [ "$versionScript" ]; then
if [ "$version" != "$versionScript" ]; then
@ -172,7 +215,7 @@ fscript_get_version(){
}
# installation du script dans le système
fscript_install(){
fscript_install(){ # v08/2017
if dirname "$0" | grep -q 'bin' ; then
f__info "$script $version est déjà installé"
return 1
@ -181,30 +224,29 @@ fscript_install(){
# install /opt
mkdir -p /opt/bin/
cp -d "$(basename $0)" "/opt/bin/$script"
chmod a+rwx "/opt/bin/$script"
chown "$user_": "/opt/bin/$script"
ln -s "/opt/bin/$script" "/usr/bin/$script" &>/dev/null
chmod 755 "/opt/bin/$script"
# cron/anacron install
fscript_cronAnacron "install"
# création fichier log
touch "$fileLogs"
chmod a+rwx "$fileLogs"
chown "$user_": "$fileLogs"
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
chmod 644 "$fileLogs"
chown "$user_": "$fileLogs" "/opt/bin/$script"
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
f__info "$GREEN$script $version installé dans le système." "maintenant, appel du script par:$GREEN $script$BLUE (sans ./)"
f__log "$script $version installé dans le système"
exit 0
}
# suppression du script dans le système
fscript_remove(){
fscript_remove(){ # v08/2017
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour supprimer ce script dans le système"
# suppression de /opt
rm /opt/bin/"$script" &>/dev/null
unlink /usr/bin/"$script" &>/dev/null
unlink /usr/local/bin/"$script" &>/dev/null # ancienne localisation
# cron/anacron remove
fscript_cronAnacron remove
f__info "$GREEN$script supprimé du système."
fscript_cronAnacron "remove"
f__info "$GREEN$script $version supprimé du système."
f__log "$script $version supprimé du système"
}
@ -240,7 +282,6 @@ fi__dialog_oui_non () {
shopt -u nocasematch
}
get_battery() { # thanks neofetch, assigne $battery
for bat in "/sys/class/power_supply/BAT"*; do
local capacity="$(< "${bat}/capacity")"
@ -630,8 +671,11 @@ fi_dmesg(){ # root only, si $1=dmesg rapport dmesg only
if [ -z "$dmesg_crit" ] && [ -z "$dmesg_warn" ] && [ -z "$dmesg_warn" ]; then
text+="**pas de messages** \n"
fi
if [ "$1" == "dmesg" ]; then
echo > "$fileOutput"
chown "$user_": "$fileOutput"
fi
echo -e "$text" >> "$fileOutput"
if [ "$1" == "dmesg" ]; then cat -n "$fileOutput"; fi
}
fi_disk(){
@ -677,6 +721,7 @@ fi_disk(){
fi_gpu(){
# local graphCards=$(lspci -nnk | grep -iEA 3 'vga|display|3d')
local graphCards=$(lspci -nnvvv | grep -iEA 13 '^[0-9]+.*vga|display|3d')
which glxinfo &>/dev/null && local openGl=$(glxinfo | grep 'OpenGL version string:')
local extraitXorg=$(grep -E '\(WW\)|\(EE\)|\(NI\)|\(\?\?\)' /var/log/Xorg.*.log /home/$user_/.local/share/xorg/Xorg.*.log 2>/dev/null)
local resolutions=$(xrandr --query | grep '^ *[0-9]' | head -n 10)
@ -687,11 +732,16 @@ fi_gpu(){
text+='```\n'
text+="$graphCards \n"
text+='```\n'
text+="\n**glxinfo | grep 'OpenGL version string:'** \n"
text+='```\n'
text+="$openGl \n"
text+='```\n'
text+="**xrandr --query | grep '^ *[0-9]' | head -n 10** (10 premières résolutions possibles) \n"
text+='```\n'
text+="$resolutions \n"
text+='```\n'
text+="**grep -E '\(WW\)|\(EE\)|\(NI\)|\(\?\?\)' /var/log/Xorg.*.log /home/user/.local/share/xorg/Xorg.*.log** (extrait xorg.log) \n"
[ "$noHome" == "true" ] && text+="attention pas de home utilisateur détecté \n"
text+='```\n'
text+="$extraitXorg \n"
text+='```\n'
@ -707,25 +757,25 @@ cat << 'EOF'
getInfo : exécution normale si script installé dans le système
options:
--dmesg, -d : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
--debug : affichage résultat complet de l'export paste
--help, -h : affichage aide
--ip, -ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
--list, -l : afficher le rapport existant
--paste, -p : exporte le rapport existant
--ssid, -s : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
-d, --dmesg : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
-h, --help : affichage aide
--ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
-l, --list : afficher le rapport existant
-p, --paste : exporte le rapport existant
-s, --ssid : affiche configurations ssid /!\ infos confidentielles
pas de rapport, root et NetworkManager requis
--install, -i : installation du script dans le système
--remove, -r : suppression du script dans le système
--upgrade, -u : upgrade script si maj possible
--version, -v : version du script, en ligne et en cours d'exécution
-i, --install : installation du script dans le système, droits root requis
-r, --remove : suppression du script dans le système, droits root requis
-u, --upgrade : upgrade script si maj possible
-v, --version : version du script, en ligne et en cours d'exécution
EOF
printf "$COLOR\n"
}
fi_localisation(){
local locale=$(grep -vE '#|^$' /etc/default/locale)
local timezone=$(cat /etc/timezone)
local keymap=$(setxkbmap -query)
local keyboard=$(grep -vE '#|^$' /etc/default/keyboard)
@ -734,6 +784,10 @@ fi_localisation(){
text+='```\n'
text+="$locale \n"
text+='```\n'
text+="**cat /etc/timezone** \n"
text+='```\n'
text+="$timezone \n"
text+='```\n'
text+="**setxkbmap -query** \n"
text+='```\n'
text+="$keymap \n"
@ -867,6 +921,8 @@ fi_sources(){
which apt &>/dev/null || return 0 # retour si pas d'apt ? et aptitude...????
local sources=$(grep -rvE '^#|^$' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null | sed 's/ / /g; s/:/: /')
local dateMaj=$(date -r /var/cache/apt/archives/)
local httpredir=$(grep 'httpredir' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null)
local upgradable=$(LC_ALL=C apt list --upgradable 2>/dev/null | sed 's/Listing...//' | grep -v '^$')
local apt=$(LC_ALL=C apt-get autoremove --simulate)
local autoremove=$(grep -c 'Remv' <<< $apt)
local paquetToRemove=$(grep 'Remv' <<< $apt | sed 's/Remv //; s/\[[0-9.-]*\]//' | tr '\n' ' ')
@ -884,6 +940,19 @@ fi_sources(){
text+="$paquetToRemove \n"
text+='```\n'
fi
if [ "$httpredir" ]; then
text+="url **httpredir,** ces urls sont obsolètes, préférer http://deb.debian.org/debian/ ou un miroir local\n"
text+='```\n'
text+="$httpredir \n"
text+='```\n'
fi
if [ "$upgradable" ]; then
text+="**des paquets devraient être mis à jour:** \n"
text+="**apt list --upgradable** \n"
text+='```\n'
text+="$upgradable \n"
text+='```\n'
fi
if [ "$paquetBiz" ]; then
text+="il y a des **paquet(s) dans un état non installé**. ce n'est pas forcément grave, mais ça peut être examiné. paquet(s) concerné(s): \n"
text+='```\n'
@ -962,24 +1031,23 @@ fi_usb(){
echo -e "$text" >> "$fileOutput"
}
fi_paste(){
paste_curl_pastery "$fileOutput" "$dureePaste" "$option"
paste_curl_pastery "$fileOutput" "$PasteDuration" "$optDebug"
# à tester paste_curl_markdownshare "$fileOutput"
}
# initialisation
PATH='/bin:/usr/bin:/sbin' ; IFS=' '
PATH='/usr/sbin:/usr/bin:/sbin:/bin' ; IFS=' '
fileOutput="getInfo_rapport.md"
fileLogs="/var/log/sdeb_$script.log"
dureePaste=1 # en nombre de jours
PasteDuration=7 # durée conservation du paste en jours
f__affichage
f__user
f__user || ( [ "$?" -eq 2 ] && noHome="true" )
f__requis "gawk wget curl"
fi__context
prg_1(){ # début
f__requis "gawk wget curl"
fi__context
prg_1(){ # début programme
rm "$fileOutput" &>/dev/null
touch "$fileOutput"
chown $user_: "$fileOutput"
@ -990,79 +1058,63 @@ prg_1(){ # début
echo -e "Rapport au $dateRapport \n" >> "$fileOutput"
}
prg_2(){ # traitements principaux
fi_systeme
fi_cpu
fi_gpu
fi_disk
fi_reseau
fi_nm # si network manager, état et conf
fi_nm_wifis # si network manager, wifi proximité
fi_usb
fi_localisation
fi_system_analyse
fi_sources
fi_dmesg
printf "."
fi_systeme; printf "."
fi_cpu; printf "."
fi_gpu; printf "."
fi_localisation; printf "."
fi_sources "."
fi_disk; printf "."
fi_reseau; printf "."
fi_nm; printf "." # si network manager, état et conf
fi_nm_wifis; printf "." # si network manager, wifi proximité
fi_usb; printf "."
fi_system_analyse; printf "."
fi_dmesg; printf ".\n"
}
prg_3(){ # fin de traitements
cat $fileOutput
echo "_[rapport getInfo v$version]($urlNotice)" >> "$fileOutput"
if ! fi__dialog_oui_non "non" "exporter sur un pastebin par défaut?" ; then
fi_paste
fi
f__info "\n$GREEN le rapport est disponible en local, fichier: $fileOutput"
f__info "vous pouvez le visualiser avec $GREEN$script -l$COLOR"
}
options=$@
amark(){
echo
}
options="$@"
for i in "$options"; do
case $i in
--debug )
option="debug" ;; # affichage résultat complet de l'export paste
esac
done
for i in "$options"; do
case $i in
--dmesg | -d ) fi_dmesg "dmesg" ;; # rapport dmesg only, root requis
--install | -i ) fscript_install ;; # installation du script dans le système
--list | -l ) [ -e $fileOutput ] && cat $fileOutput || f__info "pas de rapport à afficher" ;; # afficher le rapport existant
--paste | -p ) fi_paste ;; # exporte le rapport existant
--remove | -r ) fscript_remove ;; # suppression du script dans le système
--ssid | -s ) fi_ssid ;; # affiche configurations ssid, root requis
--version | -v ) fscript_get_version ;;# version du script, en ligne et exécuté
"" ) if [ $# -eq 0 ];then
--dmesg | -d )
fi_dmesg "dmesg"
prg_3 ;; # rapport dmesg only, root requis
--list | -l ) [ -e $fileOutput ] && cat $fileOutput || f__info "pas de rapport à afficher" ;; # afficher le rapport existant
--paste | -p ) fi_paste ;; # exporte le rapport existant
--ssid | -s ) fi_ssid ;; # affiche configurations ssid, root requis
--install | -i ) fscript_install ;; # installation du script dans le système
--remove | -r ) fscript_remove ;; # suppression du script dans le système
--version | -v ) fscript_get_version ;; # version du script, en ligne et exécuté
"" ) if [ $# -eq 0 ];then
prg_1
prg_2
prg_3
fi ;; # programme
--ip | -ip )
--ip | -ip )
get_ip_public "IPv4"
f__info "$GREEN""ip4: $ip_public"
get_ip_public "IPv6"
f__info "$BLUE""ip6: $ip_public" ;; # affiche ip public
--upgrade | -u )
--upgrade | -u )
f__log "test mise à jour"
fscript_get_version
fscript_dl ;; # upgrade script si maj possible
--help | -h | * ) fi_help ;; # affichage help
--help | -h | * ) fi_help ;; # affichage help
esac
done
printf $COLOR
exit
bug markdownshare:
'```' pas interprêté en <pre><code>
style.css ligne 167
pre {
padding:10px;
margin:0 0px 20px 0px;
font-size:0.8em
}
toc auto markdown:
http://ndossougbe.github.io/strapdown/
https://www.pastery.net/api/
license non libre? pas de depot, mais ça marche
exit 0
wget -O getInfo https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo
chmod +x getInfo && ./getInfo

View File

@ -0,0 +1,30 @@
# changelog getInfo
## 1.0.0 17/08/2017
* version publique
## notes
bug markdownshare:
'```' pas interprêté en <pre><code>
style.css ligne 167
pre {
padding:10px;
margin:0 0px 20px 0px;
font-size:0.8em
}
toc auto markdown:
http://ndossougbe.github.io/strapdown/
https://www.pastery.net/api/
license non libre? pas de depot, mais ça marche