Видео смотреть бесплатно

Смотреть зрелые видео

Официальный сайт jetune 24/7/365

Смотреть видео бесплатно

atommixz 19.09.2010 18:05

Есть проблема!Синхронизация зеркала в Arch Linux

Я переписал скрипт от сюда для своих нужд.

Вот что получилось http://ix.io/1aK или постоянная ссылка http://ix.io/user/atommixz на случай новых версий.
Поддерживает зеркалирование сторонних http (и может быть ftp?) зеркал. Для этого используется lftp. Хотя я убрал вариант синхронизации всего зеркала. И синхронизируется только x86_64.

  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/bin/bash
#
# The script to sync a local mirror of the Arch Linux repositories and ISOs
#
# Copyright (C) 2007 Woody Gilk <[email protected]>
# Modifications by Dale Blount <[email protected]>
# and Roman Kyrylych <[email protected]>
# and Vadim Gamov <[email protected]>
# and Aleksey Frolov <[email protected]>
# Licensed under the GNU GPL (version 2)
USECOLOR=yes
. /etc/rc.d/functions

# Filesystem locations for the sync operations
SYNC_HOME="/home/mirror"
SYNC_LOGS="$SYNC_HOME/logs"
SYNC_FILES="$SYNC_HOME/files"
SYNC_LOCK="$SYNC_HOME/mirrorsync.lck"

SYNC_REPO=(core extra community multilib iso archlinuxfr catalyst)
#SYNC_REPO=(archlinuxfr catalyst)

typeset -A REPO_URL
REPO_URL=(
<archlinuxfr>='http://repo.archlinux.fr/x86_64'
<catalyst>='http://catalyst.apocalypsus.net/repo/catalyst/x86_64'
)

#SYNC_SERVER=distro.ibiblio.org::distros/archlinux
SYNC_SERVER=mirror.yandex.ru::archlinux

RATE_LIMIT=50 # in kb/s
TIME_OUT=5 # in sec

# Set the format of the log file name
# This example will output something like this: sync_20070201-8.log
#LOG_FILE="pkgsync_$(date +%Y%m%d-%H).log"
LOG_FILE="pkgsync_$(date +%Y%m%d).log"

#Watchdog part (time in seconds of uninterruptable work of script)
# Needed for low-speed and/or unstable links to prevent
# rsync hunging up.
# New instance of script checks for timeout, if it occurs
# it'll kill previous instance, in elsecase it'll exit without
# any work.
WD_TIMEOUT=10800

# Do not edit the following lines, they protect the sync from running more than
# one instance at a time
if < ! -d $SYNC_HOME >; then
printhl "$SYNC_HOME does not exist, please create it, then run this script again."
exit 1
fi

if < -f $SYNC_LOCK >;then
OPID=`head -n1 $SYNC_LOCK`;
TIMEOUT=`head -n2 $SYNC_LOCK|tail -n1`;
NOW=`date +%s`;
if < "$NOW" -ge "$TIMEOUT" >;then
kill -9 $OPID;
fi
MYNAME=`basename $0`;
TESTPID=`ps -p $OPID|grep $OPID|grep $MYNAME`;
if < "$TESTPID" != "" >;then
printhl "exit";
exit 1;
else
rm $SYNC_LOCK;
fi
fi

echo $$ > "$SYNC_LOCK"
echo `expr \`date +%s\` + $WD_TIMEOUT` >> "$SYNC_LOCK"
# End of non-editable lines

# Create the log file and insert a timestamp
touch "$SYNC_LOGS/$LOG_FILE"
printhl "Starting sync on $(date --rfc-3339=seconds)" | tee -a "$SYNC_LOGS/$LOG_FILE"

for repo in ${SYNC_REPO<@>}; do
repo=$(echo $repo | tr <:upper:> <:lower:>)

printhl "Syncing $repo" | tee -a "$SYNC_LOGS/$LOG_FILE"

NEXT=false
for i in ${!REPO_URL<*>}; do
if < $i = $repo >; then
mkdir -p "$SYNC_FILES/$repo"
cd "$SYNC_FILES/$repo"
lftp -c "\
set xfer:log no; \
set net:limit-rate $<rate_limit>; \
mirror \
--delete \
--only-newer \
--verbose=3 \
${REPO_URL<$repo>}" | tee -a "$SYNC_LOGS/$LOG_FILE"
date --rfc-3339=seconds > "$SYNC_FILES/$repo.lastsync"
NEXT=true
#sleep $TIME_OUT
fi
done

if $NEXT; then continue; fi

rsync -rtvHh \
--bwlimit=$RATE_LIMIT \
--no-motd \
--delete-after \
--delete-excluded \
--prune-empty-dirs \
--delay-updates \
--copy-links \
--perms \
--include="*/" \
--include="latest/*x86_64.iso" \
--include="latest/*sum*.txt" \
--include="archboot/latest/*.iso" \
--include="os/x86_64/*" \
--exclude="*" \
$SYNC_SERVER/$repo "$SYNC_FILES" | tee -a "$SYNC_LOGS/$LOG_FILE"

# Create $repo.lastsync file with timestamp like "2007-05-02 03:41:08+03:00"
# which may be useful for users to know when the repository was last updated
date --rfc-3339=seconds > "$SYNC_FILES/$repo.lastsync"

# Sleep 5 seconds after each repository to avoid too many concurrent connections
# to rsync server if the TCP connection does not close in a timely manner
sleep $TIME_OUT
done

# Insert another timestamp and close the log file
printhl "Finished sync on $(date --rfc-3339=seconds)" | tee -a "$SYNC_LOGS/$LOG_FILE"
printsep >> "$SYNC_LOGS/$LOG_FILE"

# Remove the lock file and exit
rm -f "$SYNC_LOCK"
unset REPO_URL
exit 0
</rate_limit></catalyst></archlinuxfr>


Но есть проблема. Когда я делаю
1
sudo pacman -Syu


На моём сервере (где хранятся зеркала). Это работает нормально.
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<atommixz>$ date; sudo pacman -Syu; echo "------"; date; sudo pacman -Syu
Сбт Сен 18 19:55:47 MSD 2010
:: Синхронизируются базы данных пакетов...
core 35,7K 14,2M/s 00:00:00 <#############################################################> 100%
extra 465,9K 189,3M/s 00:00:00 <#############################################################> 100%
community 383,1K 198,6M/s 00:00:00 <#############################################################> 100%
archlinuxfr не устарел
:: Запускается полное обновление системы...
нечего выполнять
------
</atommixz><atommixz>$ date; sudo pacman -Syu
Сбт Сен 18 19:55:48 MSD 2010
:: Синхронизируются базы данных пакетов...
core не устарел
extra не устарел
community не устарел
archlinuxfr не устарел
:: Запускается полное обновление системы...
нечего выполнять</atommixz>


Но если я делаю это на десктопе, это работает не правильно. База всегда перекачивается. Хотя обновляется всё нормально.
Я бы мог не обращать на это внимания, но я планирую делать это зеркало доступным для локальной сети провайдера.
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<atommixz>$ date; sudo pacman -Syu; echo "------"; date; sudo pacman -Syu
Сбт Сен 18 19:58:42 MSD 2010
:: Синхронизируются базы данных пакетов...
core 35,7K 34,0M/s 00:00:00 <#############################################################> 100%
extra 465,9K 58,7M/s 00:00:00 <#############################################################> 100%
community 383,1K 57,9M/s 00:00:00 <#############################################################> 100%
multilib 19,3K 34,7M/s 00:00:00 <#############################################################> 100%
archlinuxfr 18,6K 42,6M/s 00:00:00 <#############################################################> 100%
catalyst 2,2K 67,7M/s 00:00:00 <#############################################################> 100%
:: Запускается полное обновление системы...
нечего выполнять
------
Сбт Сен 18 19:58:43 MSD 2010
:: Синхронизируются базы данных пакетов...
core 35,7K 34,0M/s 00:00:00 <#############################################################> 100%
extra 465,9K 58,7M/s 00:00:00 <#############################################################> 100%
community 383,1K 64,8M/s 00:00:00 <#############################################################> 100%
multilib 19,3K 48,9M/s 00:00:00 <#############################################################> 100%
archlinuxfr 18,6K 38,9M/s 00:00:00 <#############################################################> 100%
catalyst 2,2K 55,5M/s 00:00:00 <#############################################################> 100%
:: Запускается полное обновление системы...
нечего выполнять</atommixz>


Что я делаю не так? Куда копать?


Тэги: Arch Linux lftp rsync
+ 1 -
Похожие Поделиться

mutantcornholio 19.09.2010 19:57 #
+ 3 -
Ещё один с листингами не под катом. Чини быстро.
atommixz 19.09.2010 22:49 #
+ -1 -
Не понятно как это сделать, FAQа или хелпа не вижу а не пашет
atommixz 19.09.2010 22:49 #
+ 0 -
<!--break-->
atommixz 19.09.2010 22:56 #
+ 0 -
разобрался
atommixz 24.09.2010 07:09 #
+ 0 -
Ни у кого нет идей?

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн