OVH Community, votre nouvel espace communautaire.

[How To] Script de compression et de classement de HLTV Counter-Strike


dragonjo
18/05/2009, 00h28
bonjour, je reviens sur ce post car tout s'est bien passé pour le lien symbolique sauf que lorsque je saisi l'ip/hltv/, il n'y a rien qui apparait alors que des fichiers sont présents dans le dossier.

Pouvez-vous m'éclairer si possible ?

Merci par avance

Blondin
26/02/2009, 11h55
Pour ceux que ça intéresse, voici mon script :

#!/bin/sh
#Deplacement et compression des demos
cd /repertoire_du_jeu/
mv *.dem /espace_web/
cd /espace_web/
bzip2 *.dem -9
Les démos sont compressées séparément, mais à chacun de faire à sa convenance

Fanlou
11/12/2007, 10h48
Bonjour, tout d'abord merci a julia41 pour cette source.

Cependant, j'ai une petite question, pourquoi ne pas déplacer avant tes fichier dem avant l'execution du script de compression.

Je m'explique, lorsque tu indique que les demo seront dans le fichier HLTV eet qu'il faudra taper record hltv/demo cela fonctionne lorsque l'on lance le hltv manuellement.

Je suis un dodeurs et avec clanmatch nous pouvons lancer le record lorsque les leader des team on tapé ready tout les deux. Et c'est le plugins qui gere ca tout seul.

Donc pour ma part je fait un mv *.dem /HLTV au tout début de ce script.

Deuxieme chose, étant donné quant générale, les war se font sur 4 manches pourquoi ne pas compresser les 4 demos dans un seul?

C'est la que je me pose des questions! Comment faire...

merci de votre attention.

Julia41
05/06/2007, 17h48
Euh... Possible, je n'y connais rien... C'est mon premier vrai script bash...
Un seul fichier tar est créé par HLTV ce qui était mon but premier... Et son pourtant compressé après lancement de mon script... 22Mo pour le .dem, 3Mo pour le .tar.... C'est peut-être un faux .tar, juste une extension bidon (ça je ne sais pas), mais toujours est-il qu'il marche...

Le script peut-être retravaillé à souhait, j'éditerais sans problème...
Mais merci de tes conseils.

Edit : Après relecture, en clair, seul l'extension n'est pas correcte, mais sinon le reste oui... Donc juste mon format d'export que je devrais changer en .tar.gz à la place d'un simple .tar

Et j'ai eu mon premier dédié (et ma première distrib linux en shell) il n'y a que 2 semaines alors

Sufflope
05/06/2007, 17h20
Une précision : tes fichiers ne sont pas au format tar mais tar.gz (tu les compresses avec -cvzf, le z veut dire utiliser gzip).

Tar ne sert qu'à agréger plusieurs fichiers/dossiers dans un seul fichier .tar mais ne compresse rien. Donc c'est pour ça qu'on fait des tar.gz ou tar.bz2 (bzip2 au lieu de gzip comme algo de compression).
C'est un agrégat de fichiers (un tarball) ensuite compressé par gzip.

Julia41
05/06/2007, 11h32
Ce tutorial est destiné aux administrateurs de plateforme Linux désirant rendre un HLTV enregistré sur la machine disponible sur le Web, au format TAR.
Prérequis :
Un serveur Linux
Un minimum de connaissances Linux et en gestion des droits. Avoir un HLTV afin d'avoir des données à traiter...

Ce tutorial s'occupe donc des prérequis pour l'enregistrement, jusqu'à l'export dans le dossier Web.
Afin de se placer dans des répertoires "bateaux" :
User : steam
Répertoire web : /var/www/

Dans votre dossier /home/steam/cstrike/, vous allez créer un dossier "hltv"
mkdir hltv
chmod -cvR 777 hltv
chown -cvR steam hltv #On autorise l'HLTV à écrire dans ce dossier
Le dossier HLTV étant créé, lors de vos records, au lieu de :
record demo
Vous pourrez mettre
record hltv/demo
Vos records HLTV seront donc directement créés dans ce dossier.

Maintenant, nous allons créer un Lien Symbolique dans le répertoire /var/www/
cd /var/www/
ln -s /home/steam/cstrike/hltv/ /var/www/
ln -s /home/steam/cstrike/hltv/ #Marcherait, mais restons prudent
Maintenant, en vous rendant à http://IP_de_votre_machine/hltv/ Vous aurez accès à vos HLTVs dès qu'ils seront enregistrés...

Maintenant, nous allons créer un script qui classera et compressera automatiquement en fonction du mois et de l'années vos HLTVs, j'ai choisi pour ma part le format TAR, très adapté à Linux.

Donc nous allons nous rendre dans le dossier init.d/
cd /etc/init.d/
#Nous créons un nouveau fichier
touch hltv_organiser.sh
#Nous le rendons executable
chmod a+x hltv_organizer.sh
#Maintenant, nous allons le remplir
nano hltv_organizer.sh
Vous arrivez donc dans votre script qui vous servira à organiser vos HLTVs...
Ce script à été repris et très légérement amélioré par mes soins mais devait déjà exister...

#!/bin/bash
TIMESTAMP=`date +%m-%Y` #Format de votre archivage, ici 06-2007
HLDS=/home/steam/cstrike/hltv/ #Repertoire de travail (où sont les démos)
REP=/home/steam/cstrike/hltv/$TIMESTAMP/ #Repertoire de copie
FORMAT=tar #Compression au format TAR
EXTENSION=tar #Extension associée
cd $HLDS
mkdir $TIMESTAMP #On créé un dossier au nom du mois-année
for files in *.dem #On ne récupère que les .dem
do
$FORMAT cvfz $files.$EXTENSION $files #On compresse
echo "$files.$EXTENSION compressé"
mv *.tar $REP #On déplace les fichiers compressés
echo "$files.$EXTENSION déplacé"
rm $files #On supprime les HLTVs non compressé
#Commenté cette ligne quand vous testerais ce script
echo "$files supprimé"
done;
echo "Démos mise à disposition dans le répertoire : $REP"
Maintenant, vos fichiers seront compressé et organisé, mais vous devrez lancer le script manuellement.
./hltv_organizer.sh
Nous allons donc remédier à ça en effectuant une compression tout les matins à 5h10 du matin à l'aide d'une tâche cron

crontab -e
#Rajoutez cette ligne
10 5 * * * /etc/init.d/hltv_organizer.sh
Si vous avez beaucoup d'HLTVs à compresser, et une machine de puissance modeste,
je vous conseil d'effectuer cette tâche 2 fois par jour, mais il faut savoir
que de compresser 150Mo de demos HLTV ne prends que 20s au format TAR.

Voilà, maintenant vos HLTVs seront disponibles, classés et compressés automatiquement tous les matins...
Si vous voulez le lancer manuellement, libre à vous.


J'ai mis à disposition ce script car il peut-être aussi destiné à de l'archivage de logs pour Apache... Et pour de l'archivage en général...

J'attends vos retours...