bash

Как загрузить из консоли файл по ссылке с яндекс.диск

Нам поможет любимый питончик

import requests, sys
import  urllib
 
base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?'
public_key = str(sys.argv[1])
 
# Получаем загрузочную ссылку
final_url = base_url + urllib.parse.urlencode(dict(public_key=public_key))
response = requests.get(final_url)
download_url = response.json()['href']
 
# Загружаем файл и сохраняем его
download_response = requests.get(download_url)
 
# Получаем имя файла
file_name = urllib.parse.unquote(download_response.headers['Content-Disposition'].rsplit('\'\'')[1])

Сброс memcache из шелла

echo "flush_all" | /bin/netcat -q 2 127.0.0.1 11211

Скрипт вычисляющий коэфициент в зависимости от загрузки каналов

#!/bin/bash
 
# Этим скриптом узнаем скорость на интерфейсах аплинков
 
# Имя временного файла при перегрузке канала
FILE_TMP=/tmp/reconocer_velocidad.tmp
# Имя файла для отправки по ftp
FILE=/srv/ftp_backup/coeficiente_de_velocidad
# Имя файла для отправки по ftp
FTP_HOST=lt2.lan
# Массив с интерфейсами аплинков
interfazes=(vlan950 vlan429)
# Массив с предельными скоростями аплинков
velocidades_maximas=(850 600)
# Градация процентов загруженности канала
porcentajes=(0 40 50 65 73 80 105)
# Градация коэфициентов скорости относительно процентов загруженности каналв

.bash_profile vs .bashrc

poweroff if idle

while : ; do if [[ `vmstat 60 2 | tail -n 1 | awk '{print $15}'` > 90 ]]; then poweroff; fi ; done

удалить файлы, старше 30 дней

find /var/www/file_exchange/uploads/ -type f -mtime +30 -delete

Найти файлы редактированный за последние сутки

find /var/www/abc_dev/ -type f -mtime -1 -print

multithreaded parallel rsync

find -type d | xargs -I '{}' -P 10 -n1 rsync -a --no-r remote:path/'{}'/ '{}'/

rsync args:
--no-r No recursive

xargs args:
-P 10 Run up to 10 processes at a time.
-n 1 Use 1 argument per command line.

скрипт определяющий какие AS-ки входят в as-set

#!/bin/bash
 
tmpfile=/tmp/as-set.tmp
asfile=/tmp/as-set
asset=$1
 
if [ "$asset" != "" ];then
 
  if [ -e $asfile ];then
    rm $asfile
  fi
  touch $asfile
  touch $tmpfile
 
  ar()
  {
    arr=(` whois $asset | grep members | awk '{print $2}'`)
    if [ "$arr" != "" ];then
      for i in "${arr[@]}"
        do
          if [ "`echo $i | grep AS-`" = "" ];then
            echo "$i" >> $tmpfile
          else
            asset=$i
            ar
          fi
        done
    else
      echo "AS-SET not exist"
    fi
  }
  ar
 
  while read LINE
  do

Скрипт переименовывает файлы с любым расширением добавляет в их имя нужное число

#!/bin/bash 
 
src_dir=/home/images
dst_dir=/home/new_images
count=100
step=1
ras=jpg
 
if [ ! -d $dst_dir ]; then
  mkdir -p $dst_dir
fi
for i in $src_dir/*.$ras
do
  name=`echo $i | sed 's/^.*\///;s/\..*$//'`
  cp $i $dst_dir/$name$[$count+$step].$ras
  count=$[$count+$step]
done

Что делает именно этот скрипт:
берет все файлы с расширением $ras(jpg) из каталога $src_dir и копирует их в каталог $dst_dir, добавляя к имени каждого файла число, начиная с $count(100) и увеличивая это число у каждого последующего файла на число указаное в переменной $step(1)

Перебрать список файлов в каталоге

переберет в текущем каталоге

#!/bin/bash 
for i in *
do
  echo $i
done

так же вместо * можно указать *.jpg и прочее