Table des matières
3 billet(s) pour janvier 2026
| Notes rsh rcp | 2026/01/21 18:08 | Jean-Baptiste |
| Git - Duplication d'un dépôt | 2026/01/19 10:22 | Jean-Baptiste |
| Exemple simple de conf Nagios | 2026/01/14 10:07 | Jean-Baptiste |
Un MakeFile pour rpmbuild
Voir aussi :
- Python invoke https://www.pyinvoke.org/
- o-task https://taskfile.dev/
- Make.rules
Makefile
clean: SHELL:=/bin/bash build: SHELL:=/bin/bash FicSpec = $(shell echo *.spec) RpmName = $(shell grep -e '^%define name' $(FicSpec) |awk '{print $$3}') RpmVersion = $(shell grep -e '^%define version' $(FicSpec) |awk '{print $$3}') RpmRelease = $(shell grep -e '^%define release' $(FicSpec) |awk '{print $$3}') StringRpmFullname = $(RpmName)-$(RpmVersion)-$(RpmRelease).$(shell uname -m) all: build clean clean: rm -rf $$HOME/rpmbuild cleanall: clean rm -f *.rpm copy: cleanall mkdir -p $$HOME/rpmbuild/{BUILDROOT,SPECS} mkdir -p $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname) cp -a ROOT/* $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname) cp -p $(FicSpec) ~/rpmbuild/SPECS/ build: copy rpmbuild -bb ~/rpmbuild/SPECS/*.spec mv ~/rpmbuild/RPMS/*/*.rpm .
Le clean se fait bien avant, mais pas après le build.
C'est comme si :
all: build clean
Etait
all: build
Solution :
Makefile
clean: SHELL:=/bin/bash build: SHELL:=/bin/bash FicSpec = $(shell echo *.spec) RpmName = $(shell grep -e '^%define name' $(FicSpec) |awk '{print $$3}') RpmVersion = $(shell grep -e '^%define version' $(FicSpec) |awk '{print $$3}') RpmRelease = $(shell grep -e '^%define release' $(FicSpec) |awk '{print $$3}') StringRpmFullname = $(RpmName)-$(RpmVersion)-$(RpmRelease).$(shell uname -m) all: build cleanagain clean: rm -rf $$HOME/rpmbuild cleanall: clean rm -f *.rpm cleanagain: ${MAKE} clean copy: cleanall mkdir -p $$HOME/rpmbuild/{BUILDROOT,SPECS} mkdir -p $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname) cp -a ROOT/* $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname) cp -p $(FicSpec) ~/rpmbuild/SPECS/ build: copy rpmbuild -bb ~/rpmbuild/SPECS/*.spec mv ~/rpmbuild/RPMS/*/*.rpm .
Exemple avec le paquet Python mycli
mkdir -p ~/rpm/ROOT cd ~/rpm
Déposez le Makefile dans ~/rpm/
~/rpm/mycli.spec
%define name mycli
%define version 1.21.1
%define release 1
%define debug_package %{nil}
Summary: CLI for MySQL/MariaDB
Name: %{name}
Version: %{version}
Release: %{release}
Vendor: NC
Group: Database
License: MIT License
URL: https://www.mycli.net
Source0: https://github.com/dbcli/mycli
BuildRequires: rpm-build
Requires: python38
#BuildArch: noarch
%description
This is a command line interface for MySQL, MariaDB, and Percona with
auto-completion and syntax highlighting. The CLI is also capable of pretty
printing tabular data.
#%post
#set -e
%doc
#%changelog
%files
%defattr(755,root,root,644)
export http_proxy=http://127.0.0.1:3128 export https_proxy=http://127.0.0.1:3128 pip3 install --user mycli mkdir -p ~/rpm/ROOT/opt/mycli cp -a ~/.local/* ~/rpm/ROOT/opt/mycli/ mkdir -p ~/rpm/ROOT/usr/local/bin/ find /home/etudes/rpm/ROOT/ -type f -name "*.pyc" -delete
~/rpm/ROOT/usr/local/bin/mycli
#!/bin/sh env PYTHONPATH=/opt/mycli/lib/python3.8/site-packages/ /opt/mycli/bin/mycli "$@"
cd ~/rpm/ROOT find . -type f |sed -e 's/^\.//' >> ../mycli.spec cd ~/rpm/ make
Pb
did you mean TAB instead of 8 spaces?
$ make Makefile:18: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
Solution
sed -i.bak -e 's/^[ ]\+/\t/g' Makefile
Umask par defaut - Droits des fichiers par defaut
Pour Debian Jessie
Voir :
Voir aussi :
/etc/login.defs
#UMASK 022 UMASK 027
/etc/pam.d/common-session
session optional pam_umask.so
Infos
umask 27 umask -S
Source : http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
| umask | Niveau de sécurité | Permission effectives (sur les dossiers) |
| 022 | Permissif | 755 |
| 026 | Modéré | 751 |
| 027 | Modéré | 750 |
| 077 | Sévère | 700 |
Changer le umask par défaut d'un utilisateur
Voir http://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask
Il est possible d'utiliser
- le champ GECOS de /etc/passwd
- de modifier le fichier .profile, .barshrc etc… de l'utilisateur
- d'utiliser pam
Champ GECOS de /etc/passwd
#chfn --other='umask=002' username chfn -o 'umask=0002' username
NOTE : A tester en console tty & xterm, et aussi en scp, sftp.
Changer le umask pour un service Systemd
/etc/systemd/system/plop.service
[Service] UMask=006
/etc/systemd/system/httpd.service
.include /lib/systemd/system/httpd.service [Service] UMask = 0002
Autres
Exemple
source /var/lib/awx/venv/ansible/bin/activate umask 0022 pip install --upgrade pywinrm deactivate
Ultra fast reboot
Technique pas recommandé
Voir
Source article complet :
echo 1 > /proc/sys/kernel/sysrq echo b > /proc/sysrq-trigger
Ultra fast shutdown
echo 1 > /proc/sys/kernel/sysrq echo o > /proc/sysrq-trigger
Autres
last |head root pts/0 192.168.3.81 Thu May 11 09:19 still logged in reboot system boot 3.10.0-327.el7.x Thu May 11 09:17 - 09:24 (00:07) process pts/0 192.168.3.81 Wed May 10 16:42 - down (00:00) root pts/0 192.168.3.81 Wed May 10 16:34 - 16:42 (00:07) reboot system boot 3.10.0-327.el7.x Wed May 10 16:31 - 16:42 (00:10) process pts/0 192.168.3.81 Wed May 10 16:30 - 16:30 (00:00) root pts/0 192.168.3.81 Wed May 10 16:28 - 16:29 (00:01) reboot system boot 3.10.0-327.el7.x Wed May 10 16:27 - 16:42 (00:15) root pts/0 192.168.3.81 Wed May 10 16:19 - crash (00:08) reboot system boot 3.10.0-327.el7.x Wed May 10 16:15 - 16:42 (00:26)
last -x shutdown shutdown system down 3.10.0-327.el7.x Wed May 10 16:42 - 09:17 (16:34) shutdown system down 3.10.0-327.el7.x Fri May 5 18:17 - 09:04 (3+14:46) shutdown system down 3.10.0-327.el7.x Wed Apr 5 16:09 - 15:07 (29+22:58)
systemctl mask sleep.target suspend.target uptime ps -p 1 -o stime lastb chmod +s /sbin/halt chmod +s /sbin/reboot
Autres
exec /sbin/init
ulimit
Voir aussi :
- prlimit
Depuis Redhat 6 nous avons :
/etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 1024 root soft nproc unlimited www-data soft nproc unlimited
Options ulimit :
- -H : Hard
- -S : Soft
- -a : All
- -u : Nombre maximal de processus utilisateurs
ulimit -a -H ulimit -a -S
help ulimit
Voir http://fr.wikipedia.org/wiki/Fork_bomb
:(){ :|:& };:
En cas de dépassement : comment le sait-on ?
Grsecurity propose un audit des dépassements des “ulimit”
Message d'erreur ?
Pourquoi ne pas utiliser les cgroups ?
Core dump
Désactiver les cores dumps (Redhat)
/etc/profile
# No core files by default ulimit -S -c 0 > /dev/null 2>&1
Activer les cores dumps (Redhat)
su - ulimit -c unlimited
Notes
/bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/local/bin/plop
Temps réel
However, for systems with a Linux kernel 2.6.13 or newer, it is possible to allow processes without root privileges to set the real-time scheduling policy. When the Linux PAM module is installed (which is normally the case) you can control the maximum real-time priority for non-privileged processes on a per user or group basis via the /etc/security/limits.conf file.
For example, adding the line
* - rtprio 99
Outils
Appliquez les modifications directement à un processus en cours d'exécution avec prlimit
Python
import resource print(resource.getrlimit(resource.RLIMIT_NOFILE)[1])
Ubuntu LTS - Quelques optimisations pour les anciens PC
Ubuntu light / aléger
Voir aussi - Distribution GNU/Linux légéres basées sur Debian :
Voir aussi - Distribution GNU/Linux légéres basées sur Ubuntu :
- Trisquel Mini
- lunbuntu
Description: Notes installation ubuntu
Lors d'une nouvelle install, il faut d'assurer de bien aligner les partions Voir formater_une_carte_microsd_en_optimisant_les_performances_et_la_duree_de_vie
Voir :
# Services activé : systemctl list-unit-files |grep enabled # Services démarrés : systemctl |grep running
CPU - grub Kernel param
/etc/default/grub
mitigations=off
Optimisation mémoire avec zram
FixUbuntu
git pull https://github.com/micahflee/fixubuntu
Allégement Ubuntu
apt-get -y purge --autoremove $(dpkg -l |awk '{print $2}' |grep -i ubuntuone) apt-get -y purge --autoremove ubuntu-sso-client ubuntu-sso-client-gtk python-ubuntu-sso-client geoclue-ubuntu-geoip apt-get -y purge --autoremove $(dpkg -l |awk '{print $2}'|grep compiz|grep -v ^lib) apt-get -y purge --autoremove gnome-online-accounts xserver-xorg-video-vmware evolution-data-server gnome-orca gnome-accessibility-themes apt-get -y purge --autoremove $(dpkg -l |awk '{print $2}'|grep gwibber|grep -v ^lib) apt-get -y purge --autoremove zeitgeist-core zeitgeist rhythmbox-plugin-zeitgeist python-zeitgeist apt-get -y purge --autoremove landscape-client-ui-install apt-get -y purge --autoremove $(dpkg -l|grep speech |awk '{print $2}'|grep -v ^lib) apt-get -y purge --autoremove $(dpkg -l |grep bluetooth|awk '{print $2}'|grep -v ^lib ) apt-get -y purge --autoremove $(dpkg -l |grep bluez|awk '{print $2}') apt-get -y purge --autoremove apt-xapian-index indicator-keyboard
Bureau classique
apt-get install gnome-session-fallback gnome-panel
Autres
apt-get install atop htop fdupes check-dfsg-status sysstat apt-file rdiff-backup rsync vim synaptic vlc gimp chromium-browser powertop
note : check-dfsg-status remplace vrms
/etc/fstab
UUID=c6f15232-b71f-42a7-85bf-754ee44cac6a / ext4 errors=remount-ro,noatime 0 1 UUID=a5d996f4-b25c-417a-9b41-941e9898431b /home ext4 defaults,noatime,noexec,nosuid,nodev 0 2 tmpfs /dev/shm tmpfs defaults,size=100m 0 0
Voir /etc/default/tmpfs
Il s'agit ici de
- rajouter noatime sur toutes les partitions ext4 ou ext3
- d'ajouter size=100m à la partition /dev/shm. Ici 100m est un exemple. La partition /dev/shm ne fera que 100 Mo de RAM.
Parametres système - Son - Effets sonores - Volume des alertes
sed -i -e 's/^NoDisplay=true.*/NoDisplay=false/' /etc/xdg/autostart/*.desktop
gnome-session-properties
Si MATE Desktop, remplacez gnome-session-properties par mate-session-properties
Désactivation de :
- Onboard
- Partage de bureau
- Moniteur de sauvegarde
- Discussion (Telepathy)
- Moniteur de sauvegarde
- Conversion des données GSettings
- Mise à jour des dossiers utilisateur
- Fichiers
cat > /etc/modprobe.d/jibe.conf <<EOF blacklist minix blacklist btrfs blacklist xfs blacklist reiserfs blacklist ppdev blacklist parport_pc blacklist lp blacklist parport blacklist hfs blacklist hfsplus EOF
Voir :
deborphan
Notes Ubuntu 16.04
TODO: Tester de supprimer Compiz
FixUbuntu
Paramtètre système / Luminosité & verrouillage
- Vérrouiller
- Demander mon mot de passe lors de la sortie de veille
Sécurité et confidentialité Sécutité Demander mon mot de passe Dignostics
Unity Tweak Tool Unity / Web Apps
- Inviers d'intégration : off
Domaines pré-autorisés Amazon : décoché Ubuntu One : Décoché
apt-get -y purge --autoremove $(dpkg -l |grep webapps | grep ^ii |awk '{print $2}')
apt-get install vim atop sysstat powertop deborphan acpi
apt-get -y purge --autoremove xul-ext-ubufox
apt-get autoremove deborphan apt-get -y purge --autoremove $(deborphan) apt-get -y purge --autoremove $(deborphan)
Suppression effets sonores
Install libcss pour lire les DVD Le plus simple c'est d'installer VLC
apt-get install vlc
