3 liens privés
debian service script example
Parce que la ligne $(dirname $0) ne marche pas avec les appels du type . ./<script> ou les liens ou les su - ...
BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
et si le script est un lien :
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
BASEDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SET SERVEROUTPUT ON SIZE 1000000
BEGIN
FOR cur_rec IN (SELECT object_name, object_type
FROM user_objects
WHERE object_type IN ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE')) LOOP
BEGIN
IF cur_rec.object_type = 'TABLE' THEN
EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '" CASCADE CONSTRAINTS';
ELSE
EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"';
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('FAILED: DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"');
END;
END LOOP;
END;
/
NTP - Network Time Protocol
ntpdate -b -t 15 ntpserverdate
mise à jour de la date :
ntpdate -u 194.3.224.120
serveur préféré dans :
/etc/ntp.conf : server <ip> prefer
affichage des serveurs + delay :
ntpq -pn
état de la synch :
ntpstat
debug :
ntpdate –d <ntpserver>
ntpd service :
sudo /etc/init.d/ntp stop
sudo service ntp stop
sudo update-rc.d -f ntp remove
Restriction :
IPV4 : restrict 127.0.0.1
IPV6 : restrict -6 ::1
IPV4: restrict default ignore
IPv6: restrict -6 default ignore
Si ntpdate fonctionne et pas ntpq => le port UDP non ouvert dans les deux sens.
Commande start/stop
Start queue manager :strmqm <nomqueue>
End queue manager : endmqm <nomqueue>
Requête sur les queue :
lister les channel en status retry : "dis chs(*) where (status eq RETRYING)" ou "dis chs(*) where (status ne RUNNING)"
lister les queue qui ont des messages : "dis ql(*) where (curdepth gt 0)"
lister les connexions des IS : "dis conn(*) where (appltype eq USER) pid connopts appltag userid channel"
Paramétrage à surveiller :
Le nombre max de connexions/sessions dans : /var/mqm/qmgrs/QMXXX/qm.ini
Channels: MaxChannels=256
MaxActiveChannels=256
Autres commandes :
#Fichier de log
tail -f /mnt/mqm/data/qmgrs/QM1/errors/AMQERR01.LOG
# Accès console
runmqsc
# Lister tous les queues manager
DISPLAY QMGR ALL
# Lister les queues
DISPLAY Q(*)
Les critères qu'on peut mettre dans un somme.si
- "10" --> = 10
- A1 --> = le contenu de A1 (ne pas mettre =A1, mais si vous le désirez vous pouvez mettre "="&A1)
- "un texte" --> = un texte
- ">10"--> Supérieur à 10
- ">=10"--> Supérieur ou égal à 10
- "<>10"--> Différent de 10
- "<10"--> Inférieur à 10
- "<=10"--> Inférieur ou égal à 10
- ">"&A1 (et non >A1) --> Supérieur au contenu de A1
- ">="&A1 (et non >=A1) --> Supérieur ou égal au contenu de A1
- "<>"&A1 (et non <>A1) --> Différent du contenu de A1
- "<"&A1 (et non <A1) --> Inférieur au contenu de A1
- "<="&A1 (et non <=A1) --> Inférieur ou égal au contenu de A1
- "<>un texte"--> Différent de 'un texte'
- "au" ou "au" ou "au" --> tout les mots commençant par 'au', tout les mots finissant par 'au', tous les mots contenant au.
Une étoile permet de remplacer n'importe quel caractère et ne précise pas le nombre de caractères remplacés. au trouvera aux et autres
Vous pouvez également utiliser un ?, celui-ci remplacera 1 seul caractère, au? trouvera aux mais pas autres.
Si dans cette formule vous remplacez au par &A1 ( ""&A1&"*" par exemple), la recherche se fait sur le contenu de A1.
et autre lien : http://parsabahrami.com/cracking-excels-password/
Option Explicit
Public Sub Nettoie()
'd'après LL par <!-- e --><a href="mailto:GeeDee@m6net.fr">GeeDee@m6net.fr</a><!-- e -->
Dim Sht As Worksheet, _
DCell As Range, plage As Range, _
Calc As Long, _
Rien As String, _
Avant As Double
On Error Resume Next
Calc = Application.Calculation ' ---- mémorisation de l'état de recalcul
'------------------------------------------------------------
MsgBox "Pour le classeur actif : " _
& Chr(10) & ActiveWorkbook.FullName _
& Chr(10) & "dans chaque feuille de calcul" _
& Chr(10) & "recherche la zone contenant des données," _
& Chr(10) & "réinitialise la dernière cellule utilisée" _
& Chr(10) & "et optimise la taille du fichier Excel", _
vbInformation
'-------------------------------------------------------------
MsgBox "Taille initiale de ce classeur en octets" _
& Chr(10) & FileLen(ActiveWorkbook.FullName), _
vbInformation, ActiveWorkbook.FullName
'------------------------------------------------------------
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = True
End With
'-------------------- le traitement
For Each Sht In Worksheets
Avant = Sht.UsedRange.Cells.Count
Application.StatusBar = Sht.Name & "-" & Sht.UsedRange.Address
'-------------------Traitement de la zone trouvée
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
'----------------Suppression des lignes inutilisées
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Delete
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
'----------------Suppression des colonnes inutilisées
If Not DCell Is Nothing Then Sht.Range(DCell, Sht.[IV1]).EntireColumn.Delete
End If
Rien = Sht.UsedRange.Address
End If
ActiveWorkbook.Save
'---------------------Message pour la feuille traitée
MsgBox "Nom de la feuille de calcul :" _
& Chr(10) & Sht.Name _
& Chr(10) & Format(Sht.UsedRange.Cells.Count / Avant, "0.00%") _
& " de la taille initiale", vbInformation, ActiveWorkbook.FullName
Next Sht
On Error GoTo 0
'--------------------Message fin de traitement
MsgBox ActiveWorkbook.FullName & Chr(10) & "Taille optimisée de ce classeur en octets " & _
Chr(10) & FileLen(ActiveWorkbook.FullName), vbInformation
'--------------------
Application.StatusBar = False
Application.Calculation = Calc
End Sub
Montage d'une image cdrom
mount -t iso9660 slackware-12.2-install-d1.iso /mnt/cdrom -o loop
mapping des commandes entre les divers système *Nix
usermod -a -G ftp tony
Connect
sqlplus / as sysdba
sqlplus
CREATE OR REPLACE DIRECTORY test_dir AS '/u01/app/oracle/oradata/';
GRANT READ, WRITE ON DIRECTORY test_dir TO scott;
SELECT DIRECTORY_NAME, DIRECTORY_PATH FROM ALL_DIRECTORIES
export
expdp scott/tiger full=Y SCHEMA=scott directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log
import
impdp scott_new/<password> remap_schema=scott:scott_new remap_tablespace=scott_tbs:scott_tbs_new directory=test_dir dumpfile=DB10G.dmp logfile=impdpDB10G.log schemas=scott content=all
Pense-bête runlevel debian :
0 (arrête le système)
1 (simple utilisateur / mode minimal),
2 à 5 (modes multi-utilisateurs)
6 (redémarre le système).
exp userid=scott/tiger file=export_scott.dump log=export_scott.log owner=scott
imp userid=scott/tiger file=export_scott.dump log=import_scott.log owner=scott
Exécuter des lignes de commande générées à partir de fichier
cat domains.txt | awk '{system("echo \"aaa "$1 $2 $3"\"")}'
Des conseils sur le paramétrage des SSD (via je n'ai pas retrouvé)
Pour optimiser la taille des png en ligne de commande.
Avec la commande :
sudo visudo -f /etc/sudoers.d/90-cloudimg-ubuntu
Créer un fichier pour votre utilisateur :
# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL
Par défaut les utilisateurs ne voient que leur process dans Debian avec hidepid
On peut ajouter un groupe qui a les droits sur /proc (donc les droits d'avoir un ps et un top) :
Dans le /etc/fstab :
proc /proc proc defaults,gid=monitoring 0 0
reload à chaud
mount -o remount /proc -o gid=monitoring
Ajout d'utilisateurs dans le groupe autorisé à monitorer
usermod -G monitoring zabbix
Mais en fait ça ne marche pas avec un noyau grsecurity (-grs dans le nom)...