mirror of https://framagit.org/kyodev/kyopages.git
1.0.0
This commit is contained in:
parent
56f60ab620
commit
c78b1ba8a6
|
@ -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
|
|
@ -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/)
|
310
scripts/getInfo
310
scripts/getInfo
|
@ -1,14 +1,15 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
version=0.11.0
|
version=1.0.0
|
||||||
date="08/08/2017"
|
date="17/08/2017"
|
||||||
projet="simpledeb"
|
projet="simpledeb"
|
||||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
|
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues"
|
||||||
script="getInfo"
|
script="getInfo"
|
||||||
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
|
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
|
||||||
|
urlNotice="https://kyodev.frama.io/kyopages/scripts/getInfo/"
|
||||||
|
|
||||||
##### license LPRAB/WTFPL
|
##### license LPRAB/WTFPL
|
||||||
# auteur: simpledebian
|
# auteur: simpledeb
|
||||||
# contributeurs: kyodev
|
# contributeurs: kyodev
|
||||||
#####
|
#####
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ EOF
|
||||||
|
|
||||||
# detect system architecture, assign $architecture : 32bits, i686 | 64bits, amd64, return 1 on unknown architecture
|
# detect system architecture, assign $architecture : 32bits, i686 | 64bits, amd64, return 1 on unknown architecture
|
||||||
# remarque, debian: dpkg --print-architecture affiche i386
|
# remarque, debian: dpkg --print-architecture affiche i386
|
||||||
f__architecture(){
|
f__architecture(){ # v08/2017 spécifique
|
||||||
case "$(uname -m)" in
|
case "$(uname -m)" in
|
||||||
amd64 | x86_64 )
|
amd64 | x86_64 )
|
||||||
architecture="64bits, amd64";;
|
architecture="64bits, amd64";;
|
||||||
|
@ -52,113 +53,155 @@ f__architecture(){
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur
|
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si upgrade($opType)
|
||||||
f__error() {
|
f__error() { # v16/08/2017
|
||||||
echo -e "\n$RED Erreur critique: $1 $COLOR"
|
echo -e "\n$RED Erreur critique: $1 $COLOR"
|
||||||
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
|
for (( i=2 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
|
||||||
echo "$COLOR"
|
echo "$COLOR"
|
||||||
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
|
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# affichage des paramètres en bleu, ligne vide à la fin
|
# 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() {
|
f__info() { # v16/08/2017
|
||||||
for (( i=1 ; i<=$# ; i++ )); do echo -e " $BLUE${!i}"; done
|
if [ "$1" == "raw" ]; then depart=2;
|
||||||
echo "$COLOR"
|
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
|
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
|
||||||
f__log(){
|
f__log(){ # v08/2017
|
||||||
if [ -w "$fileLogs" ]; then
|
if [ -w "$fileLogs" ]; then
|
||||||
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
|
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
|
||||||
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
|
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
|
||||||
else
|
else
|
||||||
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
|
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
f__info "$fileLogs doit être activé"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# test dépendances (commandes disponibles), $1 liste commandes ou $1...$x, si manquant, avertissement des commandes manquantes
|
# test dépendances/paquets, $1 liste commande[>paquet] (ex: killall>psmisc)
|
||||||
f__requis(){
|
# si manque, info commandes manquantes, si debian, proposition paquet à installer et SORTIE
|
||||||
local dependsFail
|
# si $2=debOnly et si paquets manquants: return 1 et $debOnlyPackages ( $1=liste paquets )
|
||||||
for i in $@; do which $i &>/dev/null || dependsFail+="$i "; done
|
# si $2=debOnly et si paquets présent: return 0 et $debOnlyPresents ( $1=liste paquets )
|
||||||
[ "$dependsFail" ] && f__error "commandes(s) manquante(s)" " vous devez avoir le(s) commande(s) ""$RED$dependsFail""$BLUE""pour exploiter ce script"
|
# 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
|
# 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:
|
# return 1 sur echec ident user, return 2 sur absence home
|
||||||
# USER_INSTALL=user script
|
# gestion variable environnement user avec: USER_INSTALL=user script
|
||||||
f__user(){
|
f__user(){ # v15/08/2017-4
|
||||||
[ "$USER_INSTALL" ] && user_="$USER_INSTALL" # user_ via variable en environnement
|
local user_id
|
||||||
if [ -z "$user_" ]; then # priorité à $USER_INSTALL
|
if [ "$USER_INSTALL" ]; then user_="$USER_INSTALL"; fi # user_ via variable environnement
|
||||||
[ "$SUDO_UID" ] && user_id="$SUDO_UID" # sudo-gnome
|
if [ -z "$user_" ]; then # priorité à $USER_INSTALL
|
||||||
echo "$XAUTHORITY" | grep -Eo '[0-9]+' && user_id="$(echo $XAUTHORITY | grep -Eo '[0-9]+')" || \
|
if [ "$SUDO_UID" ]; then user_id="$SUDO_UID"; fi # sudo
|
||||||
user_id="$(echo $XDG_RUNTIME_DIR | grep -Eo '[0-9]+')"
|
user_id=$(grep -qEo '[0-9]+' <<< "$XAUTHORITY") || user_id=$(grep -qEo '[0-9]+' <<< $XDG_RUNTIME_DIR)
|
||||||
[ "$user_id" ] && user_="$(grep $user_id /etc/passwd | cut -d ":" -f 1 )" || \
|
if [ "$user_id" ]; then user_=$(grep $user_id /etc/passwd | cut -d ":" -f 1 )
|
||||||
user_="$(echo $XAUTHORITY | cut -d "/" -f 3)"
|
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
|
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
|
# test wget, $1 url à tester, sortie script sur erreur
|
||||||
f__wget_test(){
|
f__wget_test(){ # v07/2017
|
||||||
echo " $1"
|
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."
|
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
|
# inscription dans tache upgrade en anacron hebdomadaire, via cron horaire
|
||||||
fscript_cronAnacron(){
|
fscript_cronAnacron(){ # v17/08/2017
|
||||||
local dirAnacron="/home/$user_/.config/anacron"
|
local dirAnacron="/home/$user_/.config/anacron"
|
||||||
local dirSpool="$dirAnacron/spool"
|
local dirSpool="$dirAnacron/spool"
|
||||||
local fileAnacron="$dirAnacron/$script.anacrontab"
|
local fileAnacron="$dirAnacron/$script.anacrontab"
|
||||||
|
sed -i "/$script.anacrontab/d" /etc/crontab
|
||||||
case "$1" in
|
case "$1" in
|
||||||
install )
|
install | upgrade )
|
||||||
mkdir -p "$dirAnacron"
|
mkdir -p "$dirAnacron"
|
||||||
# table anacron
|
# table anacron
|
||||||
echo "7 01 $script nice /opt/bin/$script --upgrade &>/dev/null" > "$fileAnacron"
|
echo "7 01 $script nice /opt/bin/$script --upgrade" > "$fileAnacron"
|
||||||
## test: anacron journalier: echo "1 01 ""$script""test nice /opt/bin/$script --upgrade &>/dev/null" > "$fileAnacron"
|
## test: anacron journalier: echo "1 01 $script test nice /opt/bin/$script --upgrade 2>/dev/null" >> "$fileAnacron"
|
||||||
chown -R --no-preserve-root "$user_": "$dirAnacron"
|
|
||||||
chmod -R --no-preserve-root ug+xw "$dirAnacron"
|
|
||||||
# création spool anacron utilisateur
|
# création spool anacron utilisateur
|
||||||
mkdir -p "$dirSpool"
|
mkdir -p "$dirSpool"
|
||||||
chown -R --no-preserve-root "$user_": "$dirSpool"
|
chown -R "$user_": "$dirAnacron" "$dirSpool"
|
||||||
chmod -R --no-preserve-root ug+xw "$dirSpool"
|
if [ $EUID -eq 0 ]; then
|
||||||
# crontab pour activation horaire anacron
|
# crontab pour activation horaire anacron
|
||||||
grep -q ".*$script.anacrontab" /etc/crontab || \
|
|
||||||
echo "@hourly $user_ /usr/sbin/anacron -t $fileAnacron -S $dirSpool" >> /etc/crontab
|
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 )
|
remove )
|
||||||
rm "$dirSpool/$script"* &>/dev/null
|
rm "$dirSpool/$script"* &>/dev/null
|
||||||
sed -i "/$script.anacrontab/d" /etc/crontab
|
|
||||||
rm "$fileAnacron" &>/dev/null
|
rm "$fileAnacron" &>/dev/null
|
||||||
rm "$dirSpool/$script" &>/dev/null
|
|
||||||
rmdir "$dirSpool" "$dirAnacron" &>/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
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# mise à jour script si disponible
|
# mise à jour script si dispo
|
||||||
fscript_dl(){
|
fscript_dl(){ # v17/08/2017
|
||||||
if [ "$script_aJour" == "ok" ]; then return 0; fi
|
if [ "$script_aJour" == "ok" ]; then return 0; fi
|
||||||
local dirTemp="/tmp/$script-$RANDOM/"
|
local dirTemp="/tmp/$script-$RANDOM/"
|
||||||
mkdir -p "$dirTemp"
|
mkdir -p "$dirTemp"
|
||||||
opType="upgrade"
|
opType="upgrade"
|
||||||
wget -q --show-progress --tries=2 --timeout=15 -O "$dirTemp$script" "$urlScript"
|
wget -q --show-progress --tries=2 --timeout=15 -O "$dirTemp$script" "$urlScript"
|
||||||
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
|
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
|
||||||
chmod a+rwx "$dirTemp$script"
|
chmod 755 "$dirTemp$script"
|
||||||
chown "$user_": "$dirTemp$script"
|
chown "$user_": "$dirTemp$script"
|
||||||
cp -d "$dirTemp$script" /opt/bin/"$script"
|
cp -d "$dirTemp$script" /opt/bin/"$script"
|
||||||
rm -rf "$dirTemp"
|
rm -rf "$dirTemp"
|
||||||
|
fscript_cronAnacron "upgrade"
|
||||||
f__info "\n $script mis à jour en version $versionScript"
|
f__info "\n $script mis à jour en version $versionScript"
|
||||||
f__log "$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
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
|
# 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)"
|
versionScript="$(wget -q --tries=2 --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
|
||||||
if [ "$versionScript" ]; then
|
if [ "$versionScript" ]; then
|
||||||
if [ "$version" != "$versionScript" ]; then
|
if [ "$version" != "$versionScript" ]; then
|
||||||
|
@ -172,7 +215,7 @@ fscript_get_version(){
|
||||||
}
|
}
|
||||||
|
|
||||||
# installation du script dans le système
|
# installation du script dans le système
|
||||||
fscript_install(){
|
fscript_install(){ # v08/2017
|
||||||
if dirname "$0" | grep -q 'bin' ; then
|
if dirname "$0" | grep -q 'bin' ; then
|
||||||
f__info "$script $version est déjà installé"
|
f__info "$script $version est déjà installé"
|
||||||
return 1
|
return 1
|
||||||
|
@ -181,30 +224,29 @@ fscript_install(){
|
||||||
# install /opt
|
# install /opt
|
||||||
mkdir -p /opt/bin/
|
mkdir -p /opt/bin/
|
||||||
cp -d "$(basename $0)" "/opt/bin/$script"
|
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
|
ln -s "/opt/bin/$script" "/usr/bin/$script" &>/dev/null
|
||||||
|
chmod 755 "/opt/bin/$script"
|
||||||
# cron/anacron install
|
# cron/anacron install
|
||||||
fscript_cronAnacron "install"
|
fscript_cronAnacron "install"
|
||||||
# création fichier log
|
# création fichier log
|
||||||
touch "$fileLogs"
|
touch "$fileLogs"
|
||||||
chmod a+rwx "$fileLogs"
|
chmod 644 "$fileLogs"
|
||||||
chown "$user_": "$fileLogs"
|
chown "$user_": "$fileLogs" "/opt/bin/$script"
|
||||||
[ -f "$script"_changelog.md ] || rm "$(basename $0)" &>/dev/null ## on efface pas si changelog (dev)
|
[ -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__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"
|
f__log "$script $version installé dans le système"
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# suppression du script dans le système
|
# 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"
|
[ $EUID -eq 0 ] || f__error "vous devez être ROOT pour supprimer ce script dans le système"
|
||||||
# suppression de /opt
|
# suppression de /opt
|
||||||
rm /opt/bin/"$script" &>/dev/null
|
rm /opt/bin/"$script" &>/dev/null
|
||||||
unlink /usr/bin/"$script" &>/dev/null
|
unlink /usr/bin/"$script" &>/dev/null
|
||||||
unlink /usr/local/bin/"$script" &>/dev/null # ancienne localisation
|
|
||||||
# cron/anacron remove
|
# cron/anacron remove
|
||||||
fscript_cronAnacron remove
|
fscript_cronAnacron "remove"
|
||||||
f__info "$GREEN$script supprimé du système."
|
f__info "$GREEN$script $version supprimé du système."
|
||||||
f__log "$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
|
shopt -u nocasematch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
get_battery() { # thanks neofetch, assigne $battery
|
get_battery() { # thanks neofetch, assigne $battery
|
||||||
for bat in "/sys/class/power_supply/BAT"*; do
|
for bat in "/sys/class/power_supply/BAT"*; do
|
||||||
local capacity="$(< "${bat}/capacity")"
|
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
|
if [ -z "$dmesg_crit" ] && [ -z "$dmesg_warn" ] && [ -z "$dmesg_warn" ]; then
|
||||||
text+="**pas de messages** \n"
|
text+="**pas de messages** \n"
|
||||||
fi
|
fi
|
||||||
|
if [ "$1" == "dmesg" ]; then
|
||||||
|
echo > "$fileOutput"
|
||||||
|
chown "$user_": "$fileOutput"
|
||||||
|
fi
|
||||||
echo -e "$text" >> "$fileOutput"
|
echo -e "$text" >> "$fileOutput"
|
||||||
if [ "$1" == "dmesg" ]; then cat -n "$fileOutput"; fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_disk(){
|
fi_disk(){
|
||||||
|
@ -677,6 +721,7 @@ fi_disk(){
|
||||||
fi_gpu(){
|
fi_gpu(){
|
||||||
# local graphCards=$(lspci -nnk | grep -iEA 3 'vga|display|3d')
|
# local graphCards=$(lspci -nnk | grep -iEA 3 'vga|display|3d')
|
||||||
local graphCards=$(lspci -nnvvv | grep -iEA 13 '^[0-9]+.*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 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)
|
local resolutions=$(xrandr --query | grep '^ *[0-9]' | head -n 10)
|
||||||
|
|
||||||
|
@ -687,11 +732,16 @@ fi_gpu(){
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
text+="$graphCards \n"
|
text+="$graphCards \n"
|
||||||
text+='```\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+="**xrandr --query | grep '^ *[0-9]' | head -n 10** (10 premières résolutions possibles) \n"
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
text+="$resolutions \n"
|
text+="$resolutions \n"
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
text+="**grep -E '\(WW\)|\(EE\)|\(NI\)|\(\?\?\)' /var/log/Xorg.*.log /home/user/.local/share/xorg/Xorg.*.log** (extrait xorg.log) \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+='```\n'
|
||||||
text+="$extraitXorg \n"
|
text+="$extraitXorg \n"
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
|
@ -707,25 +757,25 @@ cat << 'EOF'
|
||||||
getInfo : exécution normale si script installé dans le système
|
getInfo : exécution normale si script installé dans le système
|
||||||
|
|
||||||
options:
|
options:
|
||||||
--dmesg, -d : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
|
-d, --dmesg : dmesg erreur, warning, critique. root requis, rapport seul de dmesg
|
||||||
--debug : affichage résultat complet de l'export paste
|
-h, --help : affichage aide
|
||||||
--help, -h : affichage aide
|
--ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
|
||||||
--ip, -ip : affiche ip(s) publique(s) (ipv4 / ipv6), /!\ infos confidentielles, sans rapport
|
-l, --list : afficher le rapport existant
|
||||||
--list, -l : afficher le rapport existant
|
-p, --paste : exporte le rapport existant
|
||||||
--paste, -p : exporte le rapport existant
|
-s, --ssid : affiche configurations ssid /!\ infos confidentielles
|
||||||
--ssid, -s : affiche configurations ssid /!\ infos confidentielles
|
pas de rapport, root et NetworkManager requis
|
||||||
pas de rapport, root et NetworkManager requis
|
|
||||||
|
|
||||||
--install, -i : installation du script dans le système
|
-i, --install : installation du script dans le système, droits root requis
|
||||||
--remove, -r : suppression du script dans le système
|
-r, --remove : suppression du script dans le système, droits root requis
|
||||||
--upgrade, -u : upgrade script si maj possible
|
-u, --upgrade : upgrade script si maj possible
|
||||||
--version, -v : version du script, en ligne et en cours d'exécution
|
-v, --version : version du script, en ligne et en cours d'exécution
|
||||||
EOF
|
EOF
|
||||||
printf "$COLOR\n"
|
printf "$COLOR\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_localisation(){
|
fi_localisation(){
|
||||||
local locale=$(grep -vE '#|^$' /etc/default/locale)
|
local locale=$(grep -vE '#|^$' /etc/default/locale)
|
||||||
|
local timezone=$(cat /etc/timezone)
|
||||||
local keymap=$(setxkbmap -query)
|
local keymap=$(setxkbmap -query)
|
||||||
local keyboard=$(grep -vE '#|^$' /etc/default/keyboard)
|
local keyboard=$(grep -vE '#|^$' /etc/default/keyboard)
|
||||||
|
|
||||||
|
@ -734,6 +784,10 @@ fi_localisation(){
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
text+="$locale \n"
|
text+="$locale \n"
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
|
text+="**cat /etc/timezone** \n"
|
||||||
|
text+='```\n'
|
||||||
|
text+="$timezone \n"
|
||||||
|
text+='```\n'
|
||||||
text+="**setxkbmap -query** \n"
|
text+="**setxkbmap -query** \n"
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
text+="$keymap \n"
|
text+="$keymap \n"
|
||||||
|
@ -867,6 +921,8 @@ fi_sources(){
|
||||||
which apt &>/dev/null || return 0 # retour si pas d'apt ? et aptitude...????
|
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 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 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 apt=$(LC_ALL=C apt-get autoremove --simulate)
|
||||||
local autoremove=$(grep -c 'Remv' <<< $apt)
|
local autoremove=$(grep -c 'Remv' <<< $apt)
|
||||||
local paquetToRemove=$(grep 'Remv' <<< $apt | sed 's/Remv //; s/\[[0-9.-]*\]//' | tr '\n' ' ')
|
local paquetToRemove=$(grep 'Remv' <<< $apt | sed 's/Remv //; s/\[[0-9.-]*\]//' | tr '\n' ' ')
|
||||||
|
@ -884,6 +940,19 @@ fi_sources(){
|
||||||
text+="$paquetToRemove \n"
|
text+="$paquetToRemove \n"
|
||||||
text+='```\n'
|
text+='```\n'
|
||||||
fi
|
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
|
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+="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'
|
text+='```\n'
|
||||||
|
@ -962,24 +1031,23 @@ fi_usb(){
|
||||||
echo -e "$text" >> "$fileOutput"
|
echo -e "$text" >> "$fileOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fi_paste(){
|
fi_paste(){
|
||||||
paste_curl_pastery "$fileOutput" "$dureePaste" "$option"
|
paste_curl_pastery "$fileOutput" "$PasteDuration" "$optDebug"
|
||||||
# à tester paste_curl_markdownshare "$fileOutput"
|
# à tester paste_curl_markdownshare "$fileOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# initialisation
|
# initialisation
|
||||||
PATH='/bin:/usr/bin:/sbin' ; IFS=' '
|
PATH='/usr/sbin:/usr/bin:/sbin:/bin' ; IFS=' '
|
||||||
fileOutput="getInfo_rapport.md"
|
fileOutput="getInfo_rapport.md"
|
||||||
fileLogs="/var/log/sdeb_$script.log"
|
fileLogs="/var/log/sdeb_$script.log"
|
||||||
dureePaste=1 # en nombre de jours
|
PasteDuration=7 # durée conservation du paste en jours
|
||||||
f__affichage
|
f__affichage
|
||||||
f__user
|
f__user || ( [ "$?" -eq 2 ] && noHome="true" )
|
||||||
|
f__requis "gawk wget curl"
|
||||||
|
fi__context
|
||||||
|
|
||||||
prg_1(){ # début
|
prg_1(){ # début programme
|
||||||
f__requis "gawk wget curl"
|
|
||||||
fi__context
|
|
||||||
rm "$fileOutput" &>/dev/null
|
rm "$fileOutput" &>/dev/null
|
||||||
touch "$fileOutput"
|
touch "$fileOutput"
|
||||||
chown $user_: "$fileOutput"
|
chown $user_: "$fileOutput"
|
||||||
|
@ -990,79 +1058,63 @@ prg_1(){ # début
|
||||||
echo -e "Rapport au $dateRapport \n" >> "$fileOutput"
|
echo -e "Rapport au $dateRapport \n" >> "$fileOutput"
|
||||||
}
|
}
|
||||||
prg_2(){ # traitements principaux
|
prg_2(){ # traitements principaux
|
||||||
fi_systeme
|
printf "."
|
||||||
fi_cpu
|
fi_systeme; printf "."
|
||||||
fi_gpu
|
fi_cpu; printf "."
|
||||||
fi_disk
|
fi_gpu; printf "."
|
||||||
fi_reseau
|
fi_localisation; printf "."
|
||||||
fi_nm # si network manager, état et conf
|
fi_sources "."
|
||||||
fi_nm_wifis # si network manager, wifi proximité
|
fi_disk; printf "."
|
||||||
fi_usb
|
fi_reseau; printf "."
|
||||||
fi_localisation
|
fi_nm; printf "." # si network manager, état et conf
|
||||||
fi_system_analyse
|
fi_nm_wifis; printf "." # si network manager, wifi proximité
|
||||||
fi_sources
|
fi_usb; printf "."
|
||||||
fi_dmesg
|
fi_system_analyse; printf "."
|
||||||
|
fi_dmesg; printf ".\n"
|
||||||
}
|
}
|
||||||
prg_3(){ # fin de traitements
|
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
|
if ! fi__dialog_oui_non "non" "exporter sur un pastebin par défaut?" ; then
|
||||||
fi_paste
|
fi_paste
|
||||||
fi
|
fi
|
||||||
f__info "\n$GREEN le rapport est disponible en local, fichier: $fileOutput"
|
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
|
for i in "$options"; do
|
||||||
case $i in
|
case $i in
|
||||||
--debug )
|
--dmesg | -d )
|
||||||
option="debug" ;; # affichage résultat complet de l'export paste
|
fi_dmesg "dmesg"
|
||||||
esac
|
prg_3 ;; # rapport dmesg only, root requis
|
||||||
done
|
--list | -l ) [ -e $fileOutput ] && cat $fileOutput || f__info "pas de rapport à afficher" ;; # afficher le rapport existant
|
||||||
for i in "$options"; do
|
--paste | -p ) fi_paste ;; # exporte le rapport existant
|
||||||
case $i in
|
--ssid | -s ) fi_ssid ;; # affiche configurations ssid, root requis
|
||||||
--dmesg | -d ) fi_dmesg "dmesg" ;; # rapport dmesg only, root requis
|
--install | -i ) fscript_install ;; # installation du script dans le système
|
||||||
--install | -i ) fscript_install ;; # installation du script dans le système
|
--remove | -r ) fscript_remove ;; # suppression du script dans le système
|
||||||
--list | -l ) [ -e $fileOutput ] && cat $fileOutput || f__info "pas de rapport à afficher" ;; # afficher le rapport existant
|
--version | -v ) fscript_get_version ;; # version du script, en ligne et exécuté
|
||||||
--paste | -p ) fi_paste ;; # exporte le rapport existant
|
"" ) if [ $# -eq 0 ];then
|
||||||
--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
|
|
||||||
prg_1
|
prg_1
|
||||||
prg_2
|
prg_2
|
||||||
prg_3
|
prg_3
|
||||||
fi ;; # programme
|
fi ;; # programme
|
||||||
--ip | -ip )
|
--ip | -ip )
|
||||||
get_ip_public "IPv4"
|
get_ip_public "IPv4"
|
||||||
f__info "$GREEN""ip4: $ip_public"
|
f__info "$GREEN""ip4: $ip_public"
|
||||||
get_ip_public "IPv6"
|
get_ip_public "IPv6"
|
||||||
f__info "$BLUE""ip6: $ip_public" ;; # affiche ip public
|
f__info "$BLUE""ip6: $ip_public" ;; # affiche ip public
|
||||||
--upgrade | -u )
|
--upgrade | -u )
|
||||||
f__log "test mise à jour"
|
f__log "test mise à jour"
|
||||||
fscript_get_version
|
fscript_get_version
|
||||||
fscript_dl ;; # upgrade script si maj possible
|
fscript_dl ;; # upgrade script si maj possible
|
||||||
--help | -h | * ) fi_help ;; # affichage help
|
--help | -h | * ) fi_help ;; # affichage help
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
printf $COLOR
|
exit 0
|
||||||
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
|
|
||||||
|
|
||||||
wget -O getInfo https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo
|
wget -O getInfo https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo
|
||||||
chmod +x getInfo && ./getInfo
|
chmod +x getInfo && ./getInfo
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue