Offtopic: Ah una cosa sempre su xz, ma è possibile che non ci sia la pagina del manuale?
Poi xarchiver non lo riconosce
rock
Moderatore: Staff


Mario Vanoni ha scritto: xargs ls fa quello che gli vien detto di fare,
senza sort prima zzz, poi rock ed alla fine aaa
Ragione per cui copio dirs sempre con
find | sort | cpio -pdm destinazione
e le inode della destinazione sono in ordine alfabetico.
Codice: Seleziona tutto
# find . | sort | xargs ls -ngGd > /tmp/prova
# find . | xargs ls -ngGd > /tmp/prova2
# diff /tmp/prova /tmp/prova2
Anche se usa /lib64?Mario Vanoni ha scritto: Alien e` una vecchia volpe UNIX!

xz -H | lessd4z_c0nf ha scritto: Offtopic: Ah una cosa sempre su xz, ma è possibile che non ci sia la pagina del manuale?
Poi xarchiver non lo riconosce
rock

è nuovo, molti tool non lo riconosco, per alcuni hanno fatto una versione personalizzata quelli del teamd4z_c0nf ha scritto:Eh sì USIZE come Spina insegna, adesso succhia un sacco.
Offtopic: Ah una cosa sempre su xz, ma è possibile che non ci sia la pagina del manuale?
Poi xarchiver non lo riconosce
rock

Se ho capito bene Mario tu dici che find (ordinando per inode) se restituisce qualcosa tipo:Mario Vanoni ha scritto:Si, mad4z_c0nf ha scritto: Scusa Mario ma tutto l'output (a lotto) di find viene dato in pasto ad ls o sbaglio?
rock
se la inode 1 si riferisce alla dir zzz
la inode 2 alla dir rock
la inode 3 alla dir aaa
create prima dei files,
i files avranno inodes metti 100...9999,
a seconda della data di creazione.
senza sort ls li sortisce nella dir,
ma non sortisce le dirs, quindi un "disordine" stile
zzz/aa
zzz/bb
rock/rock
rock/xxx
aaa/rock
aaa/zebra
xargs ls fa quello che gli vien detto di fare,
senza sort prima zzz, poi rock ed alla fine aaa
Ragione per cui copio dirs sempre con
find | sort | cpio -pdm destinazione
e le inode della destinazione sono in ordine alfabetico.
Alien e` una vecchia volpe UNIX!
Codice: Seleziona tutto
zzz/bb
zzz/aa
rock/rock
rock/xxx
aaa/zebra
aaa/rock
Codice: Seleziona tutto
zzz/aa
zzz/bb
rock/rock
rock/xxx
aaa/rock
aaa/zebra

Sì l'ho visto l'help esteso, ma mi riferivo proprio alla pagina del man.Mario Vanoni ha scritto:xz -H | lessd4z_c0nf ha scritto: Offtopic: Ah una cosa sempre su xz, ma è possibile che non ci sia la pagina del manuale?
Poi xarchiver non lo riconosce
rock

Scusa Corrado,conraid ha scritto:Mario Vanoni ha scritto: xargs ls fa quello che gli vien detto di fare,
senza sort prima zzz, poi rock ed alla fine aaa
Ragione per cui copio dirs sempre con
find | sort | cpio -pdm destinazione
e le inode della destinazione sono in ordine alfabetico.produce lo stesso risultatoCodice: Seleziona tutto
# find . | sort | xargs ls -ngGd > /tmp/prova # find . | xargs ls -ngGd > /tmp/prova2 # diff /tmp/prova /tmp/prova2
rock ha detto di non usare sort con ls, non sempre

a me risultano ordinate anche le dir, mentre find e basta non lo faMario Vanoni ha scritto: Scusa Corrado,
facendo su una dir di 1.3GB
# find . | sort | xargs ls -ngGd | less
dirs e files ordinati
# find . | xargs ls -ngGd | less
solo nelle dirs i files sono ordinato
l'ordine delle dirs segue le inode,
disordinate in senso alfabetico

Perciò non capivo Mario, abbiamo due risultati diversi, è strano questo fatto.Mario Vanoni ha scritto:Scusa Corrado,conraid ha scritto:Mario Vanoni ha scritto: xargs ls fa quello che gli vien detto di fare,
senza sort prima zzz, poi rock ed alla fine aaa
Ragione per cui copio dirs sempre con
find | sort | cpio -pdm destinazione
e le inode della destinazione sono in ordine alfabetico.produce lo stesso risultatoCodice: Seleziona tutto
# find . | sort | xargs ls -ngGd > /tmp/prova # find . | xargs ls -ngGd > /tmp/prova2 # diff /tmp/prova /tmp/prova2
rock ha detto di non usare sort con ls, non sempre
facendo su una dir di 1.3GB
# find . | sort | xargs ls -ngGd | less
dirs e files ordinati
# find . | xargs ls -ngGd | less
solo nelle dirs i files sono ordinato
l'ordine delle dirs segue le inode,
disordinate in senso alfabetico


E vabbè Corrado, poi dici che non ti risponde più Pat, se ti rispondono te ne approfitti incrementalmenteconraid ha scritto:Alien mi ha risposto che ha molti script da fare, ed a quelli per il repository ci penserà con calma, tanto per adesso usa i tgz
Gli ho mostrato la nostra soluzione e chiesto se sa come Pat crea il packages.txt (sempre se nel mio inglese mi sono fatto capire)

Sempre la stessa dir di 1.3GB, facciod4z_c0nf ha scritto: Perciò non capivo Mario, abbiamo due risultati diversi, è strano questo fatto.

hai ragioned4z_c0nf ha scritto:E vabbè Corrado, poi dici che non ti risponde più Pat, se ti rispondono te ne approfitti incrementalmenteconraid ha scritto:Alien mi ha risposto che ha molti script da fare, ed a quelli per il repository ci penserà con calma, tanto per adesso usa i tgz
Gli ho mostrato la nostra soluzione e chiesto se sa come Pat crea il packages.txt (sempre se nel mio inglese mi sono fatto capire)
rock

Codice: Seleziona tutto
#!/bin/bash
set -e
TMP=/tmp
HTMLDIR=/opt/slackers/html
ROOTDIR=/opt/slackers/repos-nosource
cd $ROOTDIR
# Creo Changelog.rss
# Qui c'è una parte presa pari pari dallo script di AlienBob
###############
#
# Creo PACKAGES.TXT and MANIFEST.bz2
cd $ROOTDIR
echo '' > PACKAGES.TXT
echo '' > CHECKSUMS.md5
echo '' > MANIFEST
for pkg in $(find . -type f -name '*cf.t?z' -print | sort)
do
NAME=$(basename $pkg)
LOCATION=$(dirname $pkg)
PKGEXT=${pkg##*.}
if [ $PKGEXT = "tgz" ]; then
info=($(gunzip -l $pkg | tail -n1 | tr -s ' '))
SIZE=${info[0]}
USIZE=${info[1]}
else
SIZE=$(stat --format="%s" $pkg)
USIZE=$(xz -dc $pkg | wc -c)
fi
let SIZE=SIZE/1024;
let USIZE=USIZE/1024;
REQUIRED=""
CONFLICTS=""
SUGGESTS=""
echo "PACKAGE NAME: $NAME" >> $ROOTDIR/PACKAGES.TXT
echo "PACKAGE LOCATION: $LOCATION" >> $ROOTDIR/PACKAGES.TXT
echo "PACKAGE SIZE (compressed): $SIZE K" >> $ROOTDIR/PACKAGES.TXT
echo "PACKAGE SIZE (uncompressed): $USIZE K" >> $ROOTDIR/PACKAGES.TXT
#echo "PACKAGE REQUIRED: $REQUIRED" >> $ROOTDIR/PACKAGES.TXT
#echo "PACKAGE CONFLICTS: $CONFLICTS" >> $ROOTDIR/PACKAGES.TXT
#echo "PACKAGE SUGGESTS: $SUGGESTS" >> $ROOTDIR/PACKAGES.TXT
echo "PACKAGE DESCRIPTION:" >> $ROOTDIR/PACKAGES.TXT
echo $NAME
tar xOf $pkg install/slack-desc | sed -n '/#/d;/:/p' >> $ROOTDIR/PACKAGES.TXT
echo "" >> $ROOTDIR/PACKAGES.TXT
echo "" >> $ROOTDIR/PACKAGES.TXT
echo "++========================================" >> $ROOTDIR/MANIFEST
echo "||" >> $ROOTDIR/MANIFEST
echo "|| Package: $pkg" >> $ROOTDIR/MANIFEST
echo "||" >> $ROOTDIR/MANIFEST
echo "++========================================" >> $ROOTDIR/MANIFEST
tar tvf $pkg >> $ROOTDIR/MANIFEST
echo >> $ROOTDIR/MANIFEST
echo >> $ROOTDIR/MANIFEST
md5sum $pkg >> $ROOTDIR/CHECKSUMS.md5
done
cat $ROOTDIR/PACKAGES.TXT | gzip -9 -c - > $ROOTDIR/PACKAGES.TXT.gz
cat $ROOTDIR/CHECKSUMS.md5 | gzip -9 -c - > $ROOTDIR/CHECKSUMS.md5.gz
bzip2 $ROOTDIR/MANIFEST
#
# gen_filelist
#
LISTFILE=$HTMLDIR/FILELIST.TXT
( cd ${ROOTDIR}
cat <<EOT > ${LISTFILE}
$(LC_TIME=en_US date -u)
Here is the file list for http://www.slackers.it/repository,
maintained by Corrado Franco <http://conraid.net>.
EOT
#find . | sort | xargs ls -nld >> ${LISTFILE}
find . | xargs ls -ngGd >> ${LISTFILE}
cat $LISTFILE | gzip -9 -c - > ${LISTFILE}.gz
)
# Copio i file in HTML
mv CHECKSUMS* $HTMLDIR
mv PACKAGES* $HTMLDIR
mv ChangeLog* $HTMLDIR
mv MANIFEST* $HTMLDIRCodice: Seleziona tutto
time sh mio_script.sh
real 0m10.440s
user 0m8.740s
sys 0m0.970s
time sh tuo_script.sh
real 0m11.222s
user 0m9.210s
sys 0m1.050s
Io ho tutto in ordine alfabetico quindi inode disordinatiMario Vanoni ha scritto:Sempre la stessa dir di 1.3GB, facciod4z_c0nf ha scritto: Perciò non capivo Mario, abbiamo due risultati diversi, è strano questo fatto.
# find . | sort | xargs ls -i | less
dirs ordinati ed inode ordinate nei dirs
Codice: Seleziona tutto
5537861 ./mpd/doinst.sh
5537865 ./mpd/mpd-0.14.2.tar.bz2
5537862 ./mpd/mpd.SlackBuild
5537863 ./mpd/rc.mpd.new
5537864 ./mpd/slack-desc
5554225 ./oo/builder.tar.gz
5554229 ./oo/doinst.sh.gz
5554224 ./oo/openoffice-autobuilder-multilang.SlackBuild
5554226 ./oo/slack-desc
5554227 ./oo/slack-required
3670017 ./pippo
3670018 ./pippo1
Stesso risultato della prova precedente,dirs ordinate, inode no, infatti:Mario Vanoni ha scritto: # find . | xargs ls -i | less
inode ordinate, ma dirs disordinati
Codice: Seleziona tutto
root@localhost:/Repository/src$ find . | sort | xargs ls -i > find_w_sort
root@localhost:/Repository/src$ find . | xargs ls -i > find_wo_sort
root@localhost:/Repository/src$ diff find_wo_sort find_w_sort
root@localhost:/Repository/src$
Sempre nella stessa dirMario Vanoni ha scritto: test supplementare
# find . | xargs ls -i | grep '^\.\/' | less
e vedi il disordine dei dirs sul disco rigido
Codice: Seleziona tutto
root@localhost:/Repository/src$ find . | sort | xargs ls -i | grep '^\.\/' > find_sort_grep
root@localhost:/Repository/src$ find . | xargs ls -i | grep '^\.\/' > find_wo_sort_grep
root@localhost:/Repository/src$ diff find_sort_grep find_wo_sort_grep
root@localhost:/Repository/src$