tech:notes_commande_xargs
Ceci est une ancienne révision du document !
Notes commande xargs
Strip char / trim ⇒ utiliser xargs ex :
load5=$(echo $UPTIME | awk -F, '{print $5}' | xargs)
md5sum multithread
#find . -not -name "md5sum.txt" -follow -type f -exec md5sum {} \; > md5sum.txt find . -not -name "md5sum.txt" -follow -type f -print0 |xargs -0 -L1 -P"$(nproc)" md5sum > md5sum.txt
dig A +short acme.local |xargs -P5 -I '{}' bash -c 'ping -c 1 -W 2 {} >/dev/null 2>&1 || echo {}'
cat 20_ok_ping.txt |xargs -L1 -I '{}' -P50 bash -c 'SRV={} ; ssh -p 22 -o PasswordAuthentication=no -o ChallengeResponseAuthentication=no -o PreferredAuthentications=publickey -o StrictHostKeyChecking=no -o ConnectTimeout=3 root@${SRV} true 2>/dev/null && echo +${SRV} || echo -${SRV}' |tee 30_ssh_p22.txt
pidof sleep | xargs kill -9
Renommer tous les fichiers *.txt d'un répertoire
ls -1 ${repertoire}/*.txt | xargs -I {} -t mv {} {}.csv
cat bash-xargs-demo.txt | xargs -I % sh -c 'echo %; mkdir %' xargs -a bash-xargs-demo.txt -I % sh -c 'echo %; mkdir %'
Prompt before launch
find * | xargs -p rm -rf
use xargs to copy a file to multiple directories at once; in this example we are trying to copy the file.
echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx
Avec délimitateur
$ echo 'my new file' | xargs -d '\n' touch $ ls -l total 0 -rw-r--r--. 1 shs shs 0 Oct 15 12:41 file1 -rw-r--r--. 1 shs shs 0 Oct 15 12:41 file2 -rw-r--r--. 1 shs shs 0 Oct 15 12:41 file3 -rw-r--r--. 1 shs shs 0 Oct 15 12:57 'my new file'
$ echo "1,2,3,4,5" | xargs -d, echo 1 2 3 4 5
$ echo "1,2,3,4,5" | xargs -d, -L 1 echo 1 2 3 4 5
Copie de fichiers
find /backup/ -type f | xargs -n1 -i cp {} /var/www/backup/
Curl - flood
seq 1 200 | xargs -n1 -P10 curl "http://localhost:5000/example"
Curl - test urls
xargs -a urls.txt -L1 -I '{}' -P50 bash -c 'echo $( curl --connect-timeout 2 -k -s -o /dev/null -w "%{http_code};" "{}" ; echo "{}" )' | tee ping_urls.csv
Curl can now fetch several websites in parallel
curl --parallel --parallel-immediate --parallel-max 3 --config websites.txt
- websites.txt
url = "website1.com" url = "website2.com" url = "website3.com"
xargs avec Ansible
Voir aussi :
- traitements_paralleles notes_ansible
xargs -a inventory.lst -L1 -I % -P50 bash -c "ansible --ssh-common-args='-o StrictHostKeyChecking=no' -i %, -e ansible_port=2222 -b -u admin -m command -a 'grep -q 192\.168\.223\.0 /etc/hosts.allow' all" |tee outpout.log
4 GB RAM is recommended per 100 forks… about 100MB per fork… The baseline value for [CPU capacity for forks] is 4 forks per core.
tech/notes_commande_xargs.1742825205.txt.gz · Dernière modification : de 127.0.0.1
