Pull to refresh

Comments 8

Офигеть, целый пост про бесполезную обвязку для rsync =)
Предлагаю устроить на Хабре дни обсуждений решений для синхронизации на основе rsync.
Вот к примеру мой скрипт для зеркалирования FTP (критика и дополнения приветствуются):
#!/bin/bash
#####################################
wtf=`basename ${0}`
mediad="/media/${wtf}/"
mirrord="/export/pub/mirror/${wtf}/"
#####################################
if [ ! -d "${mediad}" ]; then
	mkdir -p ${mediad}
fi
if [ ! -d "${mirrord}" ]; then
        mkdir -p ${mirrord}
fi
#####################################
case "${wtf}" in
217.x.x.28) cp="utf-8" 
   ;;
*) cp="windows-1251"
   ;;
esac
#####################################
/bin/umount -fl ${mediad}
/usr/bin/curlftpfs -r -o uid=65534,gid=65534,umask=0000,ftp_method=singlecwd,nodev,nosuid,noatime,noexec,ro,sync_read,no_remote_lock,\
kernel_cache,intr,max_read=2,readdir_ino,connect_timeout=10,transform_symlinks,codepage=${cp} ftp://${wtf}/ ${mediad} && \
rsync -vrhPL --inplace --delete-during --size-only --stats --progress --max-delete=10 --bwlimit=1500 --exclude=".*" \
${mediad} ${mirrord} >> /tmp/syn.${wtf}
/bin/umount ${mediad}
#####################################
Цитата с баша №414358:
Комментарий к новости «Возобновлено соревнование по написанию самого запутанного кода на языке Си»

Аноним
Между прочим, практически все современные дистрибутивы проводят аналогичное соревнование для языка bash/sh среди своих разработчиков.
Конкурсные работы хаотично разбрасываются по ФС, но лучшие среди них (финалисты) обычно собраны в специальном каталоге /etc/rc.d/init.d

На мой взгляд неразумно написание сложных скриптов на языке не предназначенном для этого. Ведь даже на роутерах теперь есть per/python/php (в которых есть отладчик, удобные ide и т.п.)
Ой да ладно, писать можно на чем угодно и что угодно, я в свое время ради фана писал CMS на bash (через CGI разумеется). Работало крайне медленно, но работало.
Действительно, писать (ради фана) можно и нужно на чём угодно. Но в данном случае — у новичка ошибочно создаётся впечатление, что «простыни» на bash (без отладки, заметьте) — это нормально, а это НЕ НОРМАЛЬНО в промышленной эксплуатации.
sh промышленно эксплуатируется с 70ых годов так что простенькие скрипты на баше (а приведенный выше скрипт достаточно прост) это вполне нормально. Питон есть далеко не везде, особенно на всякого рода NASах, где и имеет смысл использовать данный скрипт.
UFO just landed and posted this here
Заполнение параметров обычно делается через hash массив, в bash они есть.

declare -A keys

keys[$1]=parametr1
keys[$2]=parametr2

echo ${keys[mykey]}

А потом уже ветвите код.

if [[ -z ${keys[iszero]} ]]…
Sign up to leave a comment.

Articles