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/)
|
284
scripts/getInfo
284
scripts/getInfo
|
@ -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,8 +53,8 @@ f__architecture(){
|
|||
esac
|
||||
}
|
||||
|
||||
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur
|
||||
f__error() {
|
||||
# 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"
|
||||
|
@ -61,104 +62,146 @@ f__error() {
|
|||
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
|
||||
# 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
|
||||
[ "$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)"
|
||||
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
|
||||
[ "$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" \
|
||||
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
|
||||
}
|
||||
|
||||
# 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"
|
||||
chown -R "$user_": "$dirAnacron" "$dirSpool"
|
||||
if [ $EUID -eq 0 ]; then
|
||||
# crontab pour activation horaire anacron
|
||||
grep -q ".*$script.anacrontab" /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 )
|
||||
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"
|
||||
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
|
||||
-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,43 +1058,44 @@ 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
|
||||
--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
|
||||
--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é
|
||||
--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
|
||||
|
@ -1045,24 +1114,7 @@ for i in "$options"; do
|
|||
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
|
||||
|
|
|
@ -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