1 | #!/bin/bash |
---|
2 | # Descricao: Script para migracao de mensagens, agenda, contatos de um servidor |
---|
3 | # MS Exchange 2000 para Expresso |
---|
4 | # Author: Gabriel Gomes Malheiros <gabriel.malheiros@serpro.gov.br> |
---|
5 | # Versao: 0.99 |
---|
6 | # |
---|
7 | # Instalação: |
---|
8 | # O script necessita que haja no sistema os seguintes pacotes instalados e scripts: |
---|
9 | # -> nd, expect, lynx, openldap-client, imapcreate.pl, imapsync. |
---|
10 | # |
---|
11 | # Ã preciso que o script crie fisicamente as caixas dos usuarios, |
---|
12 | # ele deve ser executado da maquina do Expresso mail, |
---|
13 | # |
---|
14 | # O servico IMAP do MS Exchange tambem deve estar ativo. |
---|
15 | # |
---|
16 | # Deve ser gerado um arquivo de configuração com as variáveis do script |
---|
17 | # Observacao: O script necessita ler os usuarios a serem migrados no arquivo |
---|
18 | # $USRFILE, que está no arquivo de configuração . Este arquivo deve conter um usuario por linha, |
---|
19 | # sendo que em cada linha deve ter 5 colunas: LOGIN{exchannge} CPF/LOGIN{expresso} PERFIL{em Megabytes} Email CPF{cpf do responsável} |
---|
20 | # Ex: |
---|
21 | # Mjackson 15152323120 300M michael.jackson@hollywood.com 15152323120 |
---|
22 | # aspworldt asp.world 500M asp.world@surf.org 55566633321 |
---|
23 | # |
---|
24 | # Execução: |
---|
25 | # |
---|
26 | # sh migra_exchange_expresso.sh 1 -c arquivo_com_as_variaveis.conf |
---|
27 | # neste exemplo o arquivo usuarios1.txt e arquivo_com_as_variaveis.conf deve estar na mesma pasta do script. |
---|
28 | ########################################## |
---|
29 | # InÃcio de Tratamento de parametros ########## |
---|
30 | # Força o usuário passar o parametro -c nomedoarquivoconf.conf |
---|
31 | if [ -z $2 ] ; then |
---|
32 | echo -e "Sintaxe1: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo" |
---|
33 | exit 1 |
---|
34 | elif [ $2 != "-c" ] ; then # Se paramentro nao for -c |
---|
35 | echo -e "Sintaxe2: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo" |
---|
36 | exit 1 |
---|
37 | elif [ -z $3 ] ; then #Se vazio o argumento |
---|
38 | echo -e "Sintaxe3: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo" |
---|
39 | exit 1 |
---|
40 | fi |
---|
41 | |
---|
42 | if [ $( echo "$3" | awk -F "." '{print $NF}') != "conf" ] ; then # deve existir um .conf no final |
---|
43 | echo -e "Sintaxe4: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo" |
---|
44 | exit 1 |
---|
45 | fi |
---|
46 | |
---|
47 | # Fim de Tratamento de parametros ############# |
---|
48 | |
---|
49 | for line in `cat $3 | grep -v '^#' | cut -f1 -d= `; do |
---|
50 | dados=$(cat $3 | grep -v '^#' | grep ${line}= | cut -f2-14 -d= | sed 's/"//g' ) |
---|
51 | novo_dado=$(echo $dados | sed 's/ //g') |
---|
52 | export ${line}="$novo_dado" |
---|
53 | done |
---|
54 | |
---|
55 | USRFILE="usuarios$1.txt" |
---|
56 | TMPTEMP=`mktemp` |
---|
57 | TMPLDIF="${TMPTEMP}.ldif" |
---|
58 | LOCAL_INICIAL=`pwd` |
---|
59 | ARQUIVO="${TMPTEMP}.cont" |
---|
60 | exparqsql="${TMPTEMP}.sql" |
---|
61 | |
---|
62 | |
---|
63 | |
---|
64 | #################################################### |
---|
65 | ############# Lendo o arquivo dos usuarios ######### |
---|
66 | #################################################### |
---|
67 | |
---|
68 | usuarios () |
---|
69 | { |
---|
70 | cd $LOCAL_INICIAL |
---|
71 | if [ -f "${USRFILE}" ];then |
---|
72 | USRCOUNT=`cat ${USRFILE} | wc -l` |
---|
73 | for i in `seq 1 ${USRCOUNT}`; do |
---|
74 | cd ${LOCAL_INICIAL} |
---|
75 | USRFULL=`cat ${USRFILE} | sed -n ${i}p` |
---|
76 | export LOGINUSR=`echo ${USRFULL} | awk -F' ' '{print $1}'` |
---|
77 | export LOGCONT=`echo ${USRFULL} | awk -F' ' '{print $1}'` |
---|
78 | export VARCPF=`echo ${USRFULL} | awk -F' ' '{print $2}'` |
---|
79 | export PER=$(echo ${USRFULL} | awk -F' ' '{print $3}') |
---|
80 | export mail=$(echo ${USRFULL} | awk -F' ' '{print $4}') |
---|
81 | export responsavel=$(echo ${USRFULL} | awk -F' ' '{print $5}') |
---|
82 | export SENHAPADRAO=$(echo $responsavel | cut -c1-8) |
---|
83 | monta_compartilhamento |
---|
84 | done |
---|
85 | fi |
---|
86 | echo -e "\n\n \t Usuario $LOGINUSR migrado para $VARCPF \n\n\n\n" |
---|
87 | } |
---|
88 | |
---|
89 | #################################################### |
---|
90 | ########## Montando compartilhamento ############### |
---|
91 | #################################################### |
---|
92 | |
---|
93 | monta_compartilhamento() { |
---|
94 | busca_usuarios |
---|
95 | } |
---|
96 | #################################################### |
---|
97 | ############### funcao para colocar dados no banco # |
---|
98 | #################################################### |
---|
99 | |
---|
100 | put_agenda() { |
---|
101 | hostbanco="-@$EXP_HOST" |
---|
102 | echo -e " INSERT INTO phpgw_cal ( cal_id, uid, owner, datetime, mdatetime, edatetime, priority,cal_type,is_public, title, location, description, reference ) VALUES ( DEFAULT,'$hostbanco','$UID_NUMBER','$ds_start','$mdatetime' ,'$ds_end', 2,'$tipop',1,E'$titulo',E'$cidade',E'$Coment', 0);" > $exparqsql |
---|
103 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
104 | |
---|
105 | echo -e " select max(cal_id) from phpgw_cal where owner='$UID_NUMBER';" > $exparqsql |
---|
106 | ID_ATUAL_CALL=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
107 | ID_ATUAL_CALI=`echo $ID_ATUAL_CALL | cut -f3 -d" "` |
---|
108 | ID_ATUAL_CAL=$ID_ATUAL_CALI |
---|
109 | |
---|
110 | echo -e "INSERT INTO phpgw_cal_repeats ( cal_id, recur_type, recur_use_end, recur_enddate, recur_interval,recur_data, recur_exception) VALUES ( '$ID_ATUAL_CAL','$recurtype', 0,'$ds_endS','$intervalo', '$recurdata ', DEFAULT); |
---|
111 | INSERT INTO phpgw_cal_user ( cal_id, cal_login, cal_status, cal_type) VALUES ( '$ID_ATUAL_CAL','$UID_NUMBER', 'A','u');" > $exparqsql |
---|
112 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
113 | |
---|
114 | |
---|
115 | } |
---|
116 | |
---|
117 | |
---|
118 | function adicionar_banco() |
---|
119 | { |
---|
120 | echo -e "INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'phpgw_group', '777771001','$UID_NUMBER', 1); |
---|
121 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'preferences', 'changepassword', '$UID_NUMBER', 1); |
---|
122 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'preferences', 'run','$UID_NUMBER', 1); |
---|
123 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'calendar','run', '$UID_NUMBER', 1); |
---|
124 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'contactcenter','run', '$UID_NUMBER', 1); |
---|
125 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'expressoMail1_2','run', '$UID_NUMBER', 1); |
---|
126 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'jabberit_messenger','run', '$UID_NUMBER', 1); |
---|
127 | INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'help','run', '$UID_NUMBER', 1); " > $exparqsql |
---|
128 | #INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'workflow','run', '$UID_NUMBER', 1); |
---|
129 | psql -h$EXP_PG_HOST $EXP_PG_DB $EXP_PG_USER -f $exparqsql < ${TMPTEMP}.db.pass |
---|
130 | |
---|
131 | } |
---|
132 | function adicionar_imap() |
---|
133 | { |
---|
134 | su cyrus -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -s -m $UID_OX -q $PER $EXP_IMAP_HOST" |
---|
135 | # su cyrus -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -s -m $UID_OX/Lixeira,$UID_OX/Enviados,$UID_OX/Rascunho $EXP_IMAP_HOST" |
---|
136 | su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX" |
---|
137 | #sleep 10 |
---|
138 | } |
---|
139 | |
---|
140 | |
---|
141 | #################################################### |
---|
142 | ################# Agenda ########################### |
---|
143 | #################################################### |
---|
144 | |
---|
145 | |
---|
146 | migrar_agenda() { |
---|
147 | echo "Migrando agenda do usuario $LOGINUSR" |
---|
148 | export calal="Calendar" |
---|
149 | UID_OX=$(echo $UID_OX | sed 's/\./\^/g') |
---|
150 | if [ $(echo $UID_OX | grep "^[0-9]" ) ] |
---|
151 | then |
---|
152 | rm -f "${IMAP_PATH}"/q/user/$UID_OX/$calal/cyrus* |
---|
153 | ls --time-style=+%H -l ${IMAP_PATH}/q/user/$UID_OX/$calal/ | grep ^- | awk -F' ' '{print $7}' > ${TMPTEMP}.cont.tmp |
---|
154 | else |
---|
155 | rm -f ${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/$calal/cyrus* |
---|
156 | ls --time-style=+%H -l ${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/$calal/ | grep ^- | awk -F' ' '{print $7}' > ${TMPTEMP}.cont.tmp |
---|
157 | fi |
---|
158 | |
---|
159 | |
---|
160 | #VER_UID=${UID_OX:0:1} |
---|
161 | |
---|
162 | #if [ $UID_OX == ] |
---|
163 | #rm -f ${IMAP_PATH}/q/user/$UID_OX/$calal/cyrus* |
---|
164 | #ls ${IMAP_PATH}/q/user/$UID_OX/$calal/ > ${TMPTEMP}.cont.tmp |
---|
165 | LINHAS=`cat ${TMPTEMP}.cont.tmp | wc -l`; # abrindo cada arquivo .eml da pasta Calendario no |
---|
166 | for i in `seq 1 $LINHAS`;do # compartilhamento do drive M na pasta do usuario |
---|
167 | arqtrabalho1=`sed -n ${i}p ${TMPTEMP}.cont.tmp` |
---|
168 | if [ $(echo $UID_OX | grep "^[0-9]" ) ] |
---|
169 | then |
---|
170 | arqtrabalho="${IMAP_PATH}/q/user/$UID_OX/$calal/$arqtrabalho1" |
---|
171 | else |
---|
172 | arqtrabalho="${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/$calal/$arqtrabalho1" |
---|
173 | fi |
---|
174 | echo "----AGENDAMENTO $i----"; |
---|
175 | inicio_agenda=$(cat $arqtrabalho | grep -n -m1 "BEGIN:VEVENT" | cut -f1 -d:) |
---|
176 | if [ -z $inicio_agenda ];then |
---|
177 | echo -e "erro arquivo sem agendamento" |
---|
178 | continue; |
---|
179 | fi |
---|
180 | fim_agenda=$(cat $arqtrabalho | grep -n -m1 "END:VEVENT" | cut -f1 -d:) |
---|
181 | difrenca_agenda=$(($fim_agenda-$inicio_agenda)) |
---|
182 | iconv -f UTF-8 -t LATIN1//TRANSLIT $arqtrabalho > ${TMPTEMP}.tst1 |
---|
183 | if [ $? == 0 ];then |
---|
184 | mv ${TMPTEMP}.tst1 $arqtrabalho |
---|
185 | fi |
---|
186 | titulo_truck=`cat $arqtrabalho | grep -m1 SUMMARY | cut -f2-8 -d: | tr -d [=\'=] | sed -e 's/\\\//g' | tr -d '\r' | tr -d '\n' ` |
---|
187 | export titulo=${titulo_truck:0:79} |
---|
188 | export cidade=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^LOCATION | cut -f2 -d: | tr -d [=\'=]` |
---|
189 | |
---|
190 | datainia=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^DTSTART | cut -f2 -d: | sed 's/\\r//g'` |
---|
191 | explinn=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^DTSTART | cut -d: -f1) |
---|
192 | let explinn=$explinn+1 |
---|
193 | datainib=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | sed -n ${explinn}p | grep -e "^ " | sed -e 's/^ //g') |
---|
194 | dataini="${datainia}${datainib}" |
---|
195 | |
---|
196 | diaini=`echo $dataini | cut -c7-8` |
---|
197 | mesini=`echo $dataini | cut -c5-6` |
---|
198 | anoini=`echo $dataini | cut -c1-4` |
---|
199 | horaini=`echo $dataini | cut -c10-11` |
---|
200 | minini=`echo $dataini | cut -c12-13` |
---|
201 | segini=`echo $dataini | cut -c14-15` |
---|
202 | if [ ! -z $horaini ];then |
---|
203 | export timestampfield01="$anoini-$mesini-$diaini $horaini:$minini:$segini" |
---|
204 | else |
---|
205 | export timestampfield01="$anoini-$mesini-$diaini" |
---|
206 | fi |
---|
207 | date -d "$timestampfield01" +%s &> /dev/null |
---|
208 | if [ $? == 1 ];then |
---|
209 | export timestampfield01="$anoini-$mesini-$diaini 01:$minini:$segini" |
---|
210 | fi |
---|
211 | export ds_start=`date -d "$timestampfield01" +%s` |
---|
212 | |
---|
213 | datafima=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^DTEND | cut -f2 -d: | sed 's/\\r//g'` |
---|
214 | explinn=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^DTEND | cut -d: -f1) |
---|
215 | let explinn=$explinn+1 |
---|
216 | datafimb=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | sed -n ${explinn}p | grep -e "^ " | sed -e 's/^ //g') |
---|
217 | datafim="${datafima}${datafimb}" |
---|
218 | |
---|
219 | #datafim=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^DTEND | cut -f2 -d:` |
---|
220 | diafim=`echo $datafim | cut -c7-8` |
---|
221 | mesfim=`echo $datafim | cut -c5-6` |
---|
222 | anofim=`echo $datafim | cut -c1-4` |
---|
223 | horafim=`echo $datafim | cut -c10-11` |
---|
224 | minfim=`echo $datafim | cut -c12-13` |
---|
225 | segfim=`echo $datafim | cut -c14-15` |
---|
226 | if [ ! -z $horafim ];then |
---|
227 | export timestampfield02="$anofim-$mesfim-$diafim $horafim:$minfim:$segfim" |
---|
228 | else |
---|
229 | export timestampfield02="$anofim-$mesfim-$diafim" |
---|
230 | fi |
---|
231 | date -d "$timestampfield02" +%s &> /dev/null |
---|
232 | if [ $? == 1 ];then |
---|
233 | export timestampfield02="$anoini-$mesini-$diaini 01:$minini:$segini" |
---|
234 | fi |
---|
235 | |
---|
236 | export ds_end=`date -d "$timestampfield02" +%s` |
---|
237 | |
---|
238 | coment_init=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^DESCRIPTION | cut -f1 -d:) |
---|
239 | coment_SEQUE=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^SEQUENCE | cut -f1 -d:) |
---|
240 | if [ ! -z $coment_init ];then |
---|
241 | if [ ! -z $coment_SEQUE ];then |
---|
242 | coment_fim=$((${coment_SEQUE}-1)) |
---|
243 | interval=$((${coment_fim}-${coment_init})) |
---|
244 | echo $interval | grep "-" > /dev/null |
---|
245 | if [ $? -eq 0 ];then |
---|
246 | interval=0; |
---|
247 | fi |
---|
248 | else |
---|
249 | interval=0; |
---|
250 | fi |
---|
251 | else |
---|
252 | interval=0; |
---|
253 | fi |
---|
254 | export Coment=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -A ${interval} -m1 ^DESCRIPTION | sed 's/DESCRIPTION://g' | sed -e 's/\\\//g' | tr -d [=\'=]` |
---|
255 | |
---|
256 | criadoa=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^CREATED | cut -f2 -d: | sed 's/\\r//g'` |
---|
257 | explinn=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^CREATED | cut -d: -f1) |
---|
258 | let explinn=$explinn+1 |
---|
259 | criadob=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | sed -n ${explinn}p | grep -e "^ " | sed -e 's/^ //g') |
---|
260 | criado="${datafima}${datafimb}" |
---|
261 | |
---|
262 | #criado=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^CREATED | cut -f2 -d:` |
---|
263 | diacria=`echo $criado | cut -c7-8` |
---|
264 | mescria=`echo $criado | cut -c5-6` |
---|
265 | anocria=`echo $criado | cut -c1-4` |
---|
266 | horacria=`echo $criado | cut -c10-11` |
---|
267 | mincria=`echo $criado | cut -c12-13` |
---|
268 | segcria=`echo $criado | cut -c14-15` |
---|
269 | if [ ! -z $horacria ];then |
---|
270 | export datacria="$anocria-$mescria-$diacria $horacria:$mincria:$segcria" |
---|
271 | else |
---|
272 | export datacria="$anocria-$mescria-$diacria" |
---|
273 | fi |
---|
274 | date -d "$datacria" +%s &> /dev/null |
---|
275 | if [ $? == 1 ];then |
---|
276 | export datacria="$anoini-$mesini-$diaini 01:$minini:$segini" |
---|
277 | fi |
---|
278 | export mdatetime=$(date -d "$datacria" +%s) |
---|
279 | |
---|
280 | |
---|
281 | #modificado=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^LAST-MODIFIED | cut -f2 -d:` |
---|
282 | #diamod=`echo $modificado | cut -c7-8` |
---|
283 | #mesmod=`echo $modificado | cut -c5-6` |
---|
284 | #anomod=`echo $modificado | cut -c1-4` |
---|
285 | #horacr=`echo $modificado | cut -c10-11` |
---|
286 | #let horamod=$horacr-3 |
---|
287 | #minmod=`echo $modificado | cut -c12-13` |
---|
288 | #segmod=`echo $modificado | cut -c14-15` |
---|
289 | #export datamodifica="$anomod-$mesmod-$diamod $horamod:$minmod:$segmod" |
---|
290 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE |
---|
291 | if [ $? -eq 0 ];then # extrai todas as informaÃcoes e verifica o tipo do agendamento |
---|
292 | tipo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f2 -d= | cut -f1 -d\;` |
---|
293 | if [ $tipo = "DAILY" ];then |
---|
294 | |
---|
295 | #################### Diario ############################## |
---|
296 | |
---|
297 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL |
---|
298 | if [ $? -eq 0 ];then |
---|
299 | final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;` |
---|
300 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
301 | if [ $? -eq 0 ];then |
---|
302 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
303 | else |
---|
304 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
305 | fi |
---|
306 | anofin=`echo $final | cut -c1-4` |
---|
307 | mesfin=`echo $final | cut -c5-6` |
---|
308 | diafin=`echo $final | cut -c7-8` |
---|
309 | horafin=`echo $final | cut -c10-11` |
---|
310 | minfin=`echo $final | cut -c12-13` |
---|
311 | segfin=`echo $final | cut -c14-15` |
---|
312 | tipo1=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
313 | export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim" |
---|
314 | |
---|
315 | ############# pode ter problema aqui com o edatetime |
---|
316 | |
---|
317 | export ds_endS=`date -d "$timestampfield02" +%s` |
---|
318 | export recurdata=0 |
---|
319 | export tipop=M |
---|
320 | export recurtype=1 |
---|
321 | put_agenda |
---|
322 | else |
---|
323 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT |
---|
324 | if [ $? -eq 0 ];then |
---|
325 | contagem=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\; ) |
---|
326 | |
---|
327 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
328 | if [ $? -eq 0 ];then |
---|
329 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
330 | else |
---|
331 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
332 | fi |
---|
333 | else |
---|
334 | contagem=1500; |
---|
335 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep ^RRULE | cut -f3 -d= | grep INTERVAL |
---|
336 | if [ $? -eq 0 ];then |
---|
337 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
338 | else |
---|
339 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;` |
---|
340 | fi |
---|
341 | fi |
---|
342 | tipo1=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
343 | #let anofim1=$anofim+4 |
---|
344 | export tipop=M |
---|
345 | export recurtype=1 |
---|
346 | export recurdata=0 |
---|
347 | #export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim" |
---|
348 | #ds_endS=`date -d "$timestampfield02" +%s` |
---|
349 | somar_dias=$((86400*$contagem)) |
---|
350 | export ds_endS=$(($ds_start+$somar_dias)) |
---|
351 | put_agenda |
---|
352 | fi |
---|
353 | |
---|
354 | elif [ $tipo = "WEEKLY" ];then |
---|
355 | |
---|
356 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL |
---|
357 | if [ $? -eq 0 ];then |
---|
358 | |
---|
359 | ######################## Semanal ################################### |
---|
360 | |
---|
361 | t=3 |
---|
362 | final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
363 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
364 | if [ $? -eq 0 ];then |
---|
365 | let t=$t+2 |
---|
366 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
367 | else |
---|
368 | let t=$t+1 |
---|
369 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
370 | fi |
---|
371 | let t=$t+1 |
---|
372 | diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
373 | anofin=`echo $final | cut -c1-4` |
---|
374 | mesfin=`echo $final | cut -c5-6` |
---|
375 | diafin=`echo $final | cut -c7-8` |
---|
376 | horafin=`echo $final | cut -c10-11` |
---|
377 | minfin=`echo $final | cut -c12-13` |
---|
378 | segfin=`echo $final | cut -c14-15` |
---|
379 | tipo1=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
380 | export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim" |
---|
381 | export ds_endS=`date -d "$timestampfield02" +%s` |
---|
382 | rpt=`echo $diasem | awk -F',' '{print NF}'` |
---|
383 | export tipop=M |
---|
384 | export recurtype=2 |
---|
385 | recurdata=0; |
---|
386 | for h in `seq 1 $rpt`;do |
---|
387 | dia=`echo $diasem | cut -f$h -d\, | sed 's/ //g' | sed 's/\\r//g'` |
---|
388 | if [ $dia = "SU" ];then |
---|
389 | conta=0 |
---|
390 | elif [ $dia = "MO" ];then |
---|
391 | conta=1 |
---|
392 | elif [ $dia = "TU" ];then |
---|
393 | conta=2 |
---|
394 | elif [ $dia = "WE" ];then |
---|
395 | conta=3 |
---|
396 | elif [ $dia = "TH" ];then |
---|
397 | conta=4 |
---|
398 | elif [ $dia = "FR" ];then |
---|
399 | conta=5 |
---|
400 | elif [ $dia = "SA" ];then |
---|
401 | conta=6 |
---|
402 | fi |
---|
403 | export recurdata=$(($recurdata+2**$conta)) |
---|
404 | done |
---|
405 | put_agenda |
---|
406 | else |
---|
407 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT |
---|
408 | if [ $? -eq 0 ];then |
---|
409 | contagem=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\; ) |
---|
410 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
411 | if [ $? -eq 0 ];then |
---|
412 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
413 | diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=` |
---|
414 | else |
---|
415 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
416 | diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
417 | fi |
---|
418 | else |
---|
419 | contagem=214 |
---|
420 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep ^RRULE | cut -f3 -d= | grep INTERVAL |
---|
421 | if [ $? -eq 0 ];then |
---|
422 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
423 | diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d=` |
---|
424 | else |
---|
425 | export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;` |
---|
426 | diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
427 | fi |
---|
428 | fi |
---|
429 | #let anofim1=$anofim+4 |
---|
430 | #export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim" |
---|
431 | #export ds_endS=`date -d "$timestampfield02" +%s` |
---|
432 | somar_semanas=$((604800*$contagem)) |
---|
433 | export ds_endS=$(($ds_start+$somar_semanas)) |
---|
434 | rpt=`echo $diasem | awk -F',' '{print NF}'` |
---|
435 | tipo1=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
436 | export tipop=M |
---|
437 | export recurtype=2 |
---|
438 | recurdata=0; |
---|
439 | for h in `seq 1 $rpt`;do |
---|
440 | dia=`echo $diasem | cut -f$h -d, | sed 's/\\r//g'` |
---|
441 | if [ $dia = "SU" ];then |
---|
442 | conta=0 |
---|
443 | elif [ $dia = "MO" ];then |
---|
444 | conta=1 |
---|
445 | elif [ $dia = "TU" ];then |
---|
446 | conta=2 |
---|
447 | elif [ $dia = "WE" ];then |
---|
448 | conta=3 |
---|
449 | elif [ $dia = "TH" ];then |
---|
450 | conta=4 |
---|
451 | elif [ $dia = "FR" ];then |
---|
452 | conta=5 |
---|
453 | elif [ $dia = "SA" ];then |
---|
454 | conta=6 |
---|
455 | fi |
---|
456 | export recurdata=$(($recurdata+2**$conta)) |
---|
457 | done |
---|
458 | put_agenda |
---|
459 | fi |
---|
460 | |
---|
461 | elif [ $tipo = "MONTHLY" ];then |
---|
462 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL |
---|
463 | if [ $? -eq 0 ];then |
---|
464 | |
---|
465 | ############################# Mensal ################################### |
---|
466 | |
---|
467 | t=3 |
---|
468 | final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
469 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
470 | if [ $? -eq 0 ];then |
---|
471 | let t=$t+2 |
---|
472 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
473 | else |
---|
474 | let t=$t+1 |
---|
475 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
476 | fi |
---|
477 | let t=$t+1 |
---|
478 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;` |
---|
479 | anofin=`echo $final | cut -c1-4` |
---|
480 | mesfin=`echo $final | cut -c5-6` |
---|
481 | diafin=`echo $final | cut -c7-8` |
---|
482 | horafin=`echo $final | cut -c10-11` |
---|
483 | minfin=`echo $final | cut -c12-13` |
---|
484 | segfin=`echo $final | cut -c14-15` |
---|
485 | tipoum=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
486 | export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim" |
---|
487 | export ds_endS=`date -d "$timestampfield02" +%s` |
---|
488 | echo $diames | grep [A-Z] |
---|
489 | if [ $? -eq 0 ];then |
---|
490 | tipop=M |
---|
491 | recurtype=4 |
---|
492 | export recurdata=0 |
---|
493 | |
---|
494 | else |
---|
495 | tipop=M |
---|
496 | recurtype=3 |
---|
497 | recurdata=0 |
---|
498 | fi |
---|
499 | put_agenda |
---|
500 | else |
---|
501 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT |
---|
502 | if [ $? -eq 0 ];then |
---|
503 | contagem=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\; ) |
---|
504 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
505 | if [ $? -eq 0 ];then |
---|
506 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
507 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=` |
---|
508 | else |
---|
509 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
510 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
511 | fi |
---|
512 | else |
---|
513 | contagem=50; |
---|
514 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL |
---|
515 | if [ $? -eq 0 ];then |
---|
516 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
517 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d=` |
---|
518 | else |
---|
519 | intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;` |
---|
520 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
521 | fi |
---|
522 | fi |
---|
523 | #let anofim1=$anofim+4 |
---|
524 | tipoum=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
525 | #export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim" |
---|
526 | #export ds_endS=`date -d "$timestampfield02" +%s` |
---|
527 | somar_meses=$((2678400*$contagem)) |
---|
528 | export ds_endS=$(($ds_start+$somar_meses)) |
---|
529 | echo $diames | grep [A-Z] |
---|
530 | if [ $? -eq 0 ];then |
---|
531 | tipop=M |
---|
532 | recurtype=4 |
---|
533 | recurdata=0; |
---|
534 | |
---|
535 | else |
---|
536 | tipop=M |
---|
537 | recurtype=3 |
---|
538 | recurdata=0 |
---|
539 | fi |
---|
540 | |
---|
541 | |
---|
542 | put_agenda |
---|
543 | |
---|
544 | fi |
---|
545 | elif [ $tipo = "YEARLY" ];then |
---|
546 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL |
---|
547 | if [ $? -eq 0 ];then |
---|
548 | |
---|
549 | ################################# Anual ################################# |
---|
550 | |
---|
551 | final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;` |
---|
552 | anofin=`echo $final | cut -c1-4` |
---|
553 | mesfin=`echo $final | cut -c5-6` |
---|
554 | diafin=`echo $final | cut -c7-8` |
---|
555 | horafin=`echo $final | cut -c10-11` |
---|
556 | minfin=`echo $final | cut -c12-13` |
---|
557 | segfin=`echo $final | cut -c14-15` |
---|
558 | tipoum=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
559 | export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim" |
---|
560 | export ds_endS=`date -d "$timestampfield02" +%s` |
---|
561 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
562 | if [ $? -eq 0 ];then |
---|
563 | t=5 |
---|
564 | else |
---|
565 | t=4 |
---|
566 | fi |
---|
567 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | grep BYMONTH |
---|
568 | if [ $? -ne 0 ];then |
---|
569 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
570 | if [ $? -eq 0 ];then |
---|
571 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep BYSETPOS |
---|
572 | if [ $? -eq 0 ];then |
---|
573 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f8 -d= | cut -f1 -d\;` |
---|
574 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=` |
---|
575 | ordem=-1 |
---|
576 | else |
---|
577 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;` |
---|
578 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f7 -d= | cut -f1 -d\;` |
---|
579 | fi |
---|
580 | else |
---|
581 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
582 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;` |
---|
583 | fi |
---|
584 | fi |
---|
585 | |
---|
586 | tipop=M |
---|
587 | recurtype=5 |
---|
588 | intervalo=1 |
---|
589 | export recurdata=0 |
---|
590 | |
---|
591 | put_agenda |
---|
592 | |
---|
593 | |
---|
594 | else |
---|
595 | let anofim1=$anofim+4 |
---|
596 | tipoum=`echo $tipo | tr 'A-Z' 'a-z'` |
---|
597 | export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim" |
---|
598 | export ds_endS=`date -d "$timestampfield02" +%s` |
---|
599 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT |
---|
600 | if [ $? -eq 0 ];then |
---|
601 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
602 | if [ $? -eq 0 ];then |
---|
603 | t=5 |
---|
604 | else |
---|
605 | t=4 |
---|
606 | fi |
---|
607 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | grep BYMONTH |
---|
608 | if [ $? -eq 0 ];then |
---|
609 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
610 | if [ $? -eq 0 ];then |
---|
611 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;` |
---|
612 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f7 -d=` |
---|
613 | else |
---|
614 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
615 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;` |
---|
616 | fi |
---|
617 | else |
---|
618 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL |
---|
619 | if [ $? -eq 0 ];then |
---|
620 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;` |
---|
621 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f7 -d=` |
---|
622 | else |
---|
623 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
624 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;` |
---|
625 | fi |
---|
626 | fi |
---|
627 | else |
---|
628 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL |
---|
629 | if [ $? -eq 0 ];then |
---|
630 | t=4 |
---|
631 | else |
---|
632 | t=3 |
---|
633 | fi |
---|
634 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | grep BYMONTH |
---|
635 | if [ $? -eq 0 ];then |
---|
636 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL |
---|
637 | if [ $? -eq 0 ];then |
---|
638 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
639 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=` |
---|
640 | else |
---|
641 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
642 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
643 | fi |
---|
644 | else |
---|
645 | cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL |
---|
646 | if [ $? -eq 0 ];then |
---|
647 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
648 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=` |
---|
649 | else |
---|
650 | diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;` |
---|
651 | mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;` |
---|
652 | fi |
---|
653 | fi |
---|
654 | fi |
---|
655 | tipop=M |
---|
656 | recurtype=5 |
---|
657 | intervalo=1 |
---|
658 | export recurdata=0 |
---|
659 | put_agenda |
---|
660 | |
---|
661 | fi |
---|
662 | fi |
---|
663 | |
---|
664 | |
---|
665 | else |
---|
666 | |
---|
667 | ################## sem recorrencia ########################################## |
---|
668 | |
---|
669 | export tipop=E |
---|
670 | hostbanco="-@$EXP_HOST" |
---|
671 | echo -e " INSERT INTO phpgw_cal ( cal_id, uid, owner, datetime, mdatetime, edatetime, priority,cal_type,is_public,title, location, description, reference ) VALUES ( DEFAULT,'$hostbanco','$UID_NUMBER','$ds_start','$mdatetime','$ds_end', 2,'$tipop',1,E'$titulo',E'$cidade',E'$Coment', 0);" > $exparqsql |
---|
672 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
673 | |
---|
674 | echo -e " select max(cal_id) from phpgw_cal where owner='$UID_NUMBER';" > $exparqsql |
---|
675 | ID_ATUAL_CALL=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
676 | ID_ATUAL_CALD=`echo $ID_ATUAL_CALL | cut -f3 -d" "` |
---|
677 | ID_ATUAL_CAL=$ID_ATUAL_CALD |
---|
678 | |
---|
679 | echo -e "INSERT INTO phpgw_cal_user ( cal_id, cal_login, cal_status, cal_type) VALUES ( '$ID_ATUAL_CAL','$UID_NUMBER','A','u');" > $exparqsql |
---|
680 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
681 | |
---|
682 | |
---|
683 | fi |
---|
684 | done |
---|
685 | |
---|
686 | su cyrus -c "$reconstruct -C $conf_cyrus -f -r user/$UID_OX/Calendar" |
---|
687 | su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX/Calendar" |
---|
688 | su cyrus -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -d -s -m $UID_OX/Calendar $EXP_IMAP_HOST" |
---|
689 | #rm -Rdf ${IMAP_PATH}/q/user/$UID_OX/$calal |
---|
690 | rm -f ${TMPTEMP}.cont.tmp |
---|
691 | } |
---|
692 | |
---|
693 | ################################################################ |
---|
694 | ############## buscando usuario e extraindo dados ############## |
---|
695 | ################################################################ |
---|
696 | |
---|
697 | |
---|
698 | busca_usuarios() { |
---|
699 | #Pesquisa do usuario no diretorio |
---|
700 | #ldapsearch -x -D "${MS_ATTR}=${MSADMUSR},${MS_LDAPADM_SUF}" -w "${MSADMPASS}" -b "${MS_LDAP_SUF}" -H "ldap://${MSHOSTLDAP}" mailNickname="${LOGINUSR}" cn sn cl l name st department extensionAttribute2 extensionAttribute4 homeMDB title description postalCode physicalDeliveryOfficeName telephoneNumber mail -LLL > ${TMPLDIF}; |
---|
701 | if [ $? -ne 0 ]; then |
---|
702 | echo -e "ERRO: O usuario $1 nao foi encontrado na base AD do MS Exchange!"; |
---|
703 | #exit 1; |
---|
704 | else |
---|
705 | |
---|
706 | #Extracao dos atributos necessarios |
---|
707 | # VARORGAO=`sed -e '/^physicalDeliveryOfficeName:/!d;s/physicalDeliveryOfficeName://g' $TMPLDIF`; |
---|
708 | # if [ -z "$VARORGAO" ];then |
---|
709 | # VARORGAO=vazio |
---|
710 | # fi |
---|
711 | # VARCARGO=`sed -e '/^title:/!d;s/title://g' $TMPLDIF`; |
---|
712 | # if [ -z "$VARCARGO" ];then |
---|
713 | # VARCARGO=vazio |
---|
714 | # fi |
---|
715 | # VARMAT=`sed -e '/^extensionAttribute2:/!d;s/extensionAttribute2://g' $TMPLDIF`; |
---|
716 | # if [ -z "$VARMAT" ];then |
---|
717 | # VARMAT=vazio |
---|
718 | # fi |
---|
719 | |
---|
720 | |
---|
721 | |
---|
722 | #VARSN=`sed -e '/^sn:/!d;s/sn:\ //g' $TMPLDIF`; |
---|
723 | #if [ -z "$VARSN" ];then |
---|
724 | # VARSN=vazio |
---|
725 | #fi |
---|
726 | #VARSN=`echo ${VARSN:-vazio}`; |
---|
727 | #NOME=`sed -e '/^cn:/!d;s/cn:\ //g' -e "s/$VARSN$//g" $TMPLDIF`; |
---|
728 | #if [ -z "$NOME" ];then |
---|
729 | # NOME=vazio |
---|
730 | #fi |
---|
731 | #NOME=`echo ${NOME:-vazio}`; |
---|
732 | #VARST=`sed -e '/^st:/!d;s/st:\ //g' $TMPLDIF`; |
---|
733 | #if [ -z "$VARST" ];then |
---|
734 | # VARST=vazio |
---|
735 | #fi |
---|
736 | #VARST=`echo ${VARST:-vazio}`; |
---|
737 | #VARDESCRIPTION=`sed -e '/^description:/!d;s/description://g' $TMPLDIF`; |
---|
738 | #if [ -z "$VARDESCRIPTION" ];then |
---|
739 | # VARDESCRIPTION=vazio |
---|
740 | #fi |
---|
741 | #VARDESCRIPTION=`echo ${VARDESCRIPTION:-vazio}`; |
---|
742 | #VARL=`sed -e '/^l:/!d;s/l:\ //g' $TMPLDIF`; |
---|
743 | #if [ -z "$VARL" ];then |
---|
744 | # VARL=vazio |
---|
745 | #fi |
---|
746 | #VARL=`echo ${VARL:-vazio}`; |
---|
747 | #VARTELNUMBER=`sed -e '/^telephoneNumber:/!d;s/telephoneNumber://g' $TMPLDIF`; |
---|
748 | #if [ -z "$VARTELNUMBER" ];then |
---|
749 | # VARTELNUMBER=vazio |
---|
750 | #fi |
---|
751 | #VARRAMAL=`echo $VARTELNUMBER | cut -f2 -d"-"`; |
---|
752 | #if [ -z "$VARRAMAL" ];then |
---|
753 | # VARRAMAL=vazio |
---|
754 | #fi |
---|
755 | #VARTELNUMBER=`echo ${VARTELNUMBER:-vazio}`; |
---|
756 | #VARTITLE=`sed -e '/^title:/!d;s/title:\ //g' $TMPLDIF`; |
---|
757 | #if [ -z "$VARTITLE" ];then |
---|
758 | # VARTITLE=vazio |
---|
759 | #fi |
---|
760 | #VARTITLE=`echo ${VARTITLE:-vazio}`; |
---|
761 | #VARDEPARTAMENTO=`sed -e '/^department:/!d;s/department:\ //g' $TMPLDIF`; |
---|
762 | #if [ -z "$VARDEPARTAMENTO" ];then |
---|
763 | # VARDEPARTAMENTO=vazio |
---|
764 | #fi |
---|
765 | #VARDEPARTAMENTO=`echo ${VARDEPARTAMENTO:-vazio}`; |
---|
766 | #VARMAIL=`sed -e '/^mail:\ [a-zA-Z]/!d;s/mail:\ //g' $TMPLDIF`; |
---|
767 | #if [ -z "$VARMAIL" ];then |
---|
768 | # VARMAIL=vazio |
---|
769 | #fi |
---|
770 | #VARMAIL=`echo ${VARMAIL:-vazio}`; |
---|
771 | #VARFULLNAME=`sed -e '/^displayName:\ [a-zA-Z]/!d;s/displayName:\ //g' $TMPLDIF`; |
---|
772 | #if [ -z "$VARFULLNAME" ];then |
---|
773 | # VARFULLNAME=vazio |
---|
774 | #fi |
---|
775 | |
---|
776 | export UID_OX=$VARCPF |
---|
777 | echo -e "\n\n===>Migrando o usuario ${VARCPF}\n\n"; |
---|
778 | |
---|
779 | #paralelo |
---|
780 | #ldapsearch -x -D "$EXP_LDAP_ADM" -w "$EXP_LDAP_ADM_PASS" -b "$EXP_LDAP_SUF" -h $EXP_LDAP_HOST uid=$VARCPF gidNumber uidNumber userPassword description -LLL d=$VARCPF > /tmp/UID.txt |
---|
781 | |
---|
782 | UIDTEMP="${TMPTEMP}.uid" |
---|
783 | ldapsearch -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -b "$EXP_LDAP_SUF" -h $EXP_LDAP_HOST uid=$VARCPF gidNumber uidNumber userPassword description -LLL > $UIDTEMP |
---|
784 | if [ $? -eq 1 ];then |
---|
785 | echo -e "ERRO: O usuario $1 nao foi encontrado na base RHDS do Expresso!"; |
---|
786 | exit 1; |
---|
787 | else |
---|
788 | export DESCRIPTION=$(sed -e '/^description:/!d;s/description:\ //g' $UIDTEMP) |
---|
789 | export UID_NUMBER=$(sed -e '/^uidNumber:/!d;s/uidNumber:\ //g' $UIDTEMP) |
---|
790 | export GID_NUMBER=$(sed -e '/^gidNumber:/!d;s/gidNumber:\ //g' $UIDTEMP) |
---|
791 | DNN=$(sed -e '/^dn:/!d;s/dn:\ //g' $UIDTEMP) |
---|
792 | explinn=$(cat $UIDTEMP | grep -n -e "^dn" | cut -d: -f1) |
---|
793 | let explinn=$explinn+1 |
---|
794 | DNB=$(sed -n ${explinn}p $UIDTEMP | grep -e "^ " | sed -e 's/^ //g') |
---|
795 | export DN="${DNN}${DNB}" |
---|
796 | SENHAA=$(sed -e '/^userPassword:/!d;s/userPassword::\ //g' $UIDTEMP) |
---|
797 | explin=$(cat $UIDTEMP | grep -n -e "^userPassword" | cut -d: -f1) |
---|
798 | let explin=$explin+1 |
---|
799 | SENHAB=$(sed -n ${explin}p $UIDTEMP | grep -e "^ " | sed -e 's/^ //g') |
---|
800 | SENHA="${SENHAA}${SENHAB}" |
---|
801 | SENHAEXP=`echo $SENHA | openssl enc -base64 -d` |
---|
802 | echo $SENHA |
---|
803 | rm -f $UIDTEMP |
---|
804 | fi |
---|
805 | adicionar_usuario |
---|
806 | if [ $? -eq 0 ]; then |
---|
807 | echo " ==>Enviando mensagem de migracao para o usuario"; |
---|
808 | #echo -e "Sua conta do MS Exchange foi migrada para o OpenXchange!!!" | mail $LOGINUSR@$MSDOMAIN; |
---|
809 | #if [ $? -ne 0 ]; then |
---|
810 | # echo -e " Falha no envio da mensagem\n"; |
---|
811 | #else |
---|
812 | SENHAP=`slappasswd -h {SSHA} -s $SENHAPADRAO` |
---|
813 | echo -e "dn: $DN\nchangetype: modify\nreplace: userPassword\nuserPassword: $SENHAP\n" | ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST; |
---|
814 | sleep 5; |
---|
815 | |
---|
816 | #ALTERAR a variavel SENHAPADRAO_UM para SENHAPADRAO no imapsync -> alterado para testes de migracao susep |
---|
817 | #SENHAPADRAO_UM=teste |
---|
818 | |
---|
819 | imapsync --host1 $MSHOST --user1 $LOGINUSR --authmech1 LOGIN --password1 $SENHAPADRAO --host2 $EXP_IMAP_HOST --user2 $UID_OX --authmech2 LOGIN --password2 $SENHAPADRAO --regextrans2 's/\)/-/' --regextrans2 's/^INBOX\/Deleted\ Items/INBOX\/Trash/' --regextrans2 's/^INBOX\/Mensagens\ exclu&AO0-das/INBOX\/Trash/' --regextrans2 's/^INBOX\/Calend&AOE-rio/INBOX\/Calendar/' --regextrans2 's/^INBOX\/INBOX/INBOX/' --regextrans2 's/^INBOX\/Sent\ Items/INBOX\/Sent/' --regextrans2 's/^INBOX\/Rascunhos/INBOX\/Drafts/' --regextrans2 's/^INBOX\/Mensagens\ enviadas/INBOX\/Sent/' --exclude 'Contacts' --exclude 'Contatos' --exclude 'Di&AOE-rio' --exclude 'Journal' --exclude 'Notes' --exclude 'Anota&AOcA9Q-es' --exclude 'Outbox' --exclude 'Caixa\ de\ sa&AO0-da' --exclude 'Spam\ Mail' --exclude 'Tarefas' --exclude 'Tasks' --exclude 'Public\ Folders' --exclude 'Pastas\ P&APo-blicas' --exclude 'Lixo\ eletr&APQ-nico' --exclude 'Problemas\ de\ Sincroniza&AOcA4w-o' --subscribe |
---|
820 | |
---|
821 | #imapsync --host1 $MSHOST --user1 $LOGINUSR --authmech1 LOGIN --password1 $SENHAPADRAO --host2 $EXP_IMAP_HOST --user2 $UID_OX --authmech2 LOGIN --password2 $SENHAPADRAO --regextrans2 's/^INBOX\/Mensagens\ excluídas/INBOX\/Trash/' --regextrans2 's/^INBOX\/Mensagens\ enviadas/INBOX\/Sent/' --regextrans2 's/^INBOX\/Rascunhos/INBOX\/Drafts/' --regextrans2 's/^INBOX\/INBOX/INBOX/' --exclude 'Contacts' --exclude 'Journal' --exclude 'Notes' --exclude 'Outbox' --exclude 'Spam\ Mail' --exclude 'Tasks' --exclude 'Public\ Folders' --exclude 'Lixo\ eletr&APQ-nico' --exclude 'Problemas\ de\ Sincroniza&AOcA4w-o' --subscribe |
---|
822 | #sleep 2; |
---|
823 | #Retorno da senha do Rhds para o valor antigo |
---|
824 | #echo -e "dn: $DN\nchangetype: modify\nreplace: userPassword\nuserPassword: $SENHAEXP\n" | ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST; |
---|
825 | |
---|
826 | |
---|
827 | migrar_agenda |
---|
828 | if [ $? -eq 0 ]; then |
---|
829 | echo -e " \n\n ##### agendamentos do usuario $NOME migrados com sucesso ######## \n\n"; |
---|
830 | else |
---|
831 | echo -e " \n\n ##### ERRO ao migrar agendamentos do $NOME ####### \n\n"; |
---|
832 | fi |
---|
833 | |
---|
834 | migrar_contatos |
---|
835 | if [ $? -eq 0 ]; then |
---|
836 | echo -e " \n\n ##### Contatos do usuario $NOME migrados com sucesso ######## \n\n"; |
---|
837 | else |
---|
838 | echo -e " \n\n ##### ERRO ao migrar contatos ####### \n\n"; |
---|
839 | fi |
---|
840 | |
---|
841 | |
---|
842 | su cyrus -c "$reconstruct -C $conf_cyrus -f -r user/$UID_OX" |
---|
843 | su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX" |
---|
844 | |
---|
845 | |
---|
846 | #FIRSTCHAR=$(echo $UID_OX | grep -o "^." ) |
---|
847 | #if [ $(echo $UID_OX | grep "^[0-9]" ) ]; then |
---|
848 | # rm -f /usr/lib/imap/quota/q/user.$UID_OX |
---|
849 | #else |
---|
850 | # rm -f /usr/lib/imap/quota/${UID_OX:0:1}/user.$UID_OX |
---|
851 | #fi |
---|
852 | |
---|
853 | su cyrus -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -s -m $UID_OX -q $PER $EXP_IMAP_HOST" |
---|
854 | su cyrus -c "$quota -C $conf_cyrus -f user/$UID_OX" |
---|
855 | |
---|
856 | su cyrus -c "$reconstruct -C $conf_cyrus -r user/$UID_OX" |
---|
857 | su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX" |
---|
858 | |
---|
859 | |
---|
860 | |
---|
861 | |
---|
862 | |
---|
863 | else |
---|
864 | echo "********************************************************************************" |
---|
865 | echo "ERRO: Nao foi possivel adicionar o usuario ${LOGINUSR} no Expresso!" | tee -a $ARQUIVODELOG; |
---|
866 | echo "********************************************************************************" |
---|
867 | fi |
---|
868 | fi; |
---|
869 | |
---|
870 | } |
---|
871 | |
---|
872 | ################################################################################ |
---|
873 | ################### Adicionando Usuario ######################################## |
---|
874 | ################################################################################ |
---|
875 | |
---|
876 | |
---|
877 | function adicionar_usuario() { |
---|
878 | #Adicao do usuario no EXP |
---|
879 | #${ADDLOGINUSR_CMD} --username="${VARCPF}" --passwd="${PASS}" --name="${NOME}" --sname="${VARSN}" --maildomain="${EXP_DOMINIO}" --EXP_timezone='America/Sao_Paulo' --email="${VARMAIL}" --estado="${VARST}" --cidade="${VARL}" --ramal="${VARRAMAL}" --telefone="${VARTELNUMBER}" --perfil="${VARPERFIL}" --cargo="${VARCARGO}" --observacoes="${VARDESCRIPTION}" --orgao="${VARORGAO}" --matricula="${VARMAT}" --lotacao="${VARDEPARTAMENTO}" |
---|
880 | sleep 1; |
---|
881 | #$ADDLOGINUSRTOGROUP_CMD --user="$VARCPF" --group=users; |
---|
882 | mail1=`echo $mail | cut -f1 -d@` |
---|
883 | mail2="$LOGINUSR@$EXP_DOMINIO" |
---|
884 | mail3="$mail1@$EXP_DOMINIO" |
---|
885 | ldapsearch -x -D "$EXP_LDAP_ADM" uid=${VARCPF} -b "$EXP_LDAP_SUF" uid -LLL -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST |
---|
886 | if [ $? -eq 0 ]; then |
---|
887 | echo -e "dn: $DN\nchangetype: modify\nadd: mailAlternateAddress\nmailAlternateAddress: $mail3\n-\nadd: phpgwAccountExpires\nphpgwAccountExpires: -1\n-\nadd: phpgwAccountStatus\nphpgwAccountStatus: A\n-\nadd: phpgwAccountType\nphpgwAccountType: u\n-\nadd: accountStatus\naccountStatus: active\n-\nadd: objectclass\nobjectclass: phpgwaccount\n" | ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST |
---|
888 | echo -e "dn: $grupo\nchangetype: modify\nadd: memberUid\nmemberUid: ${VARCPF}" | ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST |
---|
889 | ## colocar no ldapmodify de cima ' -\nadd: objectclass\nobjectclass: phpgwaccount\n ' |
---|
890 | echo $EXP_PG_PASS > ${TMPTEMP}.db.pass; |
---|
891 | adicionar_banco |
---|
892 | adicionar_imap |
---|
893 | else |
---|
894 | false; |
---|
895 | fi; |
---|
896 | } |
---|
897 | |
---|
898 | |
---|
899 | #################################################### |
---|
900 | ################# Contatos ######################### |
---|
901 | #################################################### |
---|
902 | |
---|
903 | |
---|
904 | migrar_contatos() |
---|
905 | { |
---|
906 | #Busca o caminho de acesso ao WebAccess |
---|
907 | PREFIXO="${MSPROT}://${MSHOST}/exchange/${LOGCONT}" |
---|
908 | |
---|
909 | # Checa se a interface do WebAccess esta em Pt ou En |
---|
910 | lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "$PREFIXO?Cmd=navbar" | grep -i contatos > /dev/null |
---|
911 | if [ $? -eq 0 ]; then |
---|
912 | strContact="Contatos" |
---|
913 | else |
---|
914 | strContact="Contacts" |
---|
915 | fi |
---|
916 | |
---|
917 | # Arquivo base de armazenamento temporario das informacoes do contato do usuario CAMPOS="Job_title#oxuserposition |
---|
918 | # Company#o Department#ou Business_Phone#TelephoneNumber Home_Phone#HomePhone Mobile_Phone#Mobile E-mail#mail |
---|
919 | # Business_Address# Assistant_Phone#OXUserTeleAssistant Business_Fax#FacsimileTelephoneNumber |
---|
920 | # Callback_Phone#oxusertelecallback Company_Phone#OXUserTeleCompany Home_Phone_2#OXUserTeleHome2 |
---|
921 | # Home_Fax#OtherFacsimiletelephoneNumber ISDN#internationaliSDNNumber Other_Phone#OXUserTeleOther |
---|
922 | # Other_fax#OXUserTeleFax2 Car_Phone#pager E-mail_2#OXUserEmail2 E-mail_3#OXUserEmail3 Home_Address# Other_Address# |
---|
923 | # Web_Page#url" |
---|
924 | CAMPOS=" |
---|
925 | Business_Phone#TelephoneNumber |
---|
926 | Home_Phone#HomePhone |
---|
927 | Mobile_Phone#Mobile |
---|
928 | E-mail#mail |
---|
929 | Business_Fax#FacsimileTelephoneNumber |
---|
930 | E-mail_2#OXUserEmail2" |
---|
931 | cont=0; |
---|
932 | BirthDate=null |
---|
933 | ALIAS=null |
---|
934 | Notes=null |
---|
935 | #for k in $( seq 1 `lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=1&View=Detailed%20Address%20Cards" | sed '/Next Page/!d' | sed 's/.*\([0-9]\)/\1/g;s/\([0-9]*\).*/\1/g'` ); do |
---|
936 | #for k in $( seq 1 `lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=1&View=Detailed%20Address%20Cards" | sed '/Next Page/!d' | awk -F ' ' '{print $5}'`); do |
---|
937 | for k in $( seq 1 `lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=1&View=Detailed%20Address%20Cards" | sed '/Next Page/!d' | tr -d [:alpha:],[:blank:],[=_=],[=:=],[=-=] | iconv -f LATIN1 -t UTF-8 | sed 's/çã//g'`); do |
---|
938 | lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=$k&View=Detailed%20Address%20Cards" > ${ARQUIVO} |
---|
939 | |
---|
940 | iconv -f LATIN1 -t LATIN1 $ARQUIVO > ${TMPTEMP}.tst1 |
---|
941 | mv ${TMPTEMP}.tst1 $ARQUIVO |
---|
942 | echo $EXP_PG_PASS > /tmp/EXPsenhadb.txt; |
---|
943 | for i in $(seq 1 `cat ${ARQUIVO} | grep '\[_\]' | wc -l`); do |
---|
944 | let cont=${cont}+1 |
---|
945 | echo "----CONTATO $cont----"; |
---|
946 | echo "Migrando Contato" |
---|
947 | cat ${ARQUIVO} | grep -n '\[_\]' | cut -f1 -d: > ${TMPTEMP}.linhas.tmp |
---|
948 | cat ${ARQUIVO} | wc -l >> ${TMPTEMP}.linhas.tmp |
---|
949 | Lent=`sed -n ${i}p ${TMPTEMP}.linhas.tmp` |
---|
950 | let i=${i}+1 |
---|
951 | Lfim=`sed -n ${i}p ${TMPTEMP}.linhas.tmp` |
---|
952 | let i=${i}-1 |
---|
953 | let j=${Lfim}-${Lent} |
---|
954 | more +$Lent ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | grep -e "(" > /dev/null |
---|
955 | if [ $? == 0 ];then |
---|
956 | NameOrdered=$(more +$Lent ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | sed -e 's/ //g' | tr -d [=\'=]) |
---|
957 | GivenName="" |
---|
958 | FamilyName="" |
---|
959 | else |
---|
960 | nome=`more +$Lent ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | awk -F',' '{print $2}' | sed -e 's/ //g' | tr -d [=\'=] ` |
---|
961 | if [ -z "$nome" ];then |
---|
962 | nome="" |
---|
963 | fi |
---|
964 | Nultimo=`more +$Lent ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | awk -F',' '{print $1}' | sed -e 's/ //g' | tr -d [=\'=] ` |
---|
965 | if [ -z "$Nultimo" ];then |
---|
966 | Nultimo="" |
---|
967 | fi |
---|
968 | GivenName=$nome |
---|
969 | FamilyName=$Nultimo |
---|
970 | if [ ! -z "$nome" ];then |
---|
971 | NameOrdered="$nome $Nultimo" |
---|
972 | else |
---|
973 | NameOrdered="$Nultimo" |
---|
974 | fi |
---|
975 | fi |
---|
976 | echo -e " select max(id_contact) from phpgw_cc_contact;" > $exparqsql |
---|
977 | ID_ATUAL_COT=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
978 | ID_ATUAL_COTT=`echo $ID_ATUAL_COT | cut -f3 -d" "` |
---|
979 | let PROX_ID=$ID_ATUAL_COTT+1; |
---|
980 | echo -e " INSERT INTO phpgw_cc_contact ( id_contact, id_owner, id_status, alias, given_names,family_names,names_ordered, birthdate, notes, is_global ) VALUES ( '$PROX_ID', '$UID_NUMBER', 1,E'$ALIAS',E'$GivenName',E'$FamilyName',E'$NameOrdered', $BirthDate,E'$Notes', 'FALSE' );" > $exparqsql |
---|
981 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
982 | for v in $CAMPOS;do |
---|
983 | CAMPOMS=`echo ${v} | cut -f1 -d#` |
---|
984 | CAMPOOX=`echo ${v} | cut -f2 -d#` |
---|
985 | CAMPOMS2=`echo $CAMPOMS | tr -s '_' ' '` |
---|
986 | valor=$(more +${Lent} ${ARQUIVO} | grep -A $j -m 1 '\[_\]' | grep -m 1 "$CAMPOMS2" | sed -e 's/ //g' | awk -F "$CAMPOMS2" '{print $2}' | sed 's/^ //g' | tr -d [=\'=]) |
---|
987 | if [ ! -z "$valor" ];then |
---|
988 | if [ $CAMPOOX = "TelephoneNumber" ];then |
---|
989 | echo $valor | grep "[a-zA-Z]" > /dev/null |
---|
990 | if [ $? == 1 ];then |
---|
991 | Comercial=$valor |
---|
992 | else |
---|
993 | comercial=""; |
---|
994 | fi |
---|
995 | elif [ $CAMPOOX = "HomePhone" ];then |
---|
996 | echo $valor | grep "[a-zA-Z]" > /dev/null |
---|
997 | if [ $? == 1 ];then |
---|
998 | Residencial=$valor |
---|
999 | else |
---|
1000 | Residencial=""; |
---|
1001 | fi |
---|
1002 | elif [ $CAMPOOX = "Mobile" ];then |
---|
1003 | echo $valor | grep "[a-zA-Z]" > /dev/null |
---|
1004 | if [ $? == 1 ];then |
---|
1005 | Celular=$valor |
---|
1006 | else |
---|
1007 | Celular=""; |
---|
1008 | fi |
---|
1009 | elif [ $CAMPOOX = "mail" ];then |
---|
1010 | echo $valor | grep "[a-zA-Z]" > /dev/null |
---|
1011 | if [ $? == 0 ];then |
---|
1012 | Principal=$valor |
---|
1013 | else |
---|
1014 | Principal="" |
---|
1015 | fi |
---|
1016 | elif [ $CAMPOOX = "FacsimileTelephoneNumber" ];then |
---|
1017 | echo $valor | grep "[a-zA-Z]" > /dev/null |
---|
1018 | if [ $? == 1 ];then |
---|
1019 | Fax=$valor |
---|
1020 | else |
---|
1021 | Fax=""; |
---|
1022 | fi |
---|
1023 | elif [ $CAMPOOX = "OXUserEmail2" ];then |
---|
1024 | echo $valor | grep "[a-zA-Z]" > /dev/null |
---|
1025 | if [ $? == 0 ];then |
---|
1026 | Alternativo=$valor |
---|
1027 | else |
---|
1028 | Alternativo=""; |
---|
1029 | fi |
---|
1030 | |
---|
1031 | fi |
---|
1032 | else |
---|
1033 | if [ $CAMPOOX = "TelephoneNumber" ];then |
---|
1034 | Comercial="" |
---|
1035 | elif [ $CAMPOOX = "HomePhone" ];then |
---|
1036 | Residencial="" |
---|
1037 | elif [ $CAMPOOX = "Mobile" ];then |
---|
1038 | Celular="" |
---|
1039 | elif [ $CAMPOOX = "mail" ];then |
---|
1040 | Principal="" |
---|
1041 | elif [ $CAMPOOX = "FacsimileTelephoneNumber" ];then |
---|
1042 | Fax="" |
---|
1043 | elif [ $CAMPOOX = "OXUserEmail2" ];then |
---|
1044 | Alternativo="" |
---|
1045 | fi |
---|
1046 | fi |
---|
1047 | |
---|
1048 | |
---|
1049 | |
---|
1050 | done |
---|
1051 | tipo1=0 |
---|
1052 | tipo2=0 |
---|
1053 | |
---|
1054 | Principal=$Principal |
---|
1055 | if [ -z "$Principal" ];then |
---|
1056 | Principal="" |
---|
1057 | else |
---|
1058 | echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql |
---|
1059 | ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
1060 | ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "` |
---|
1061 | let PROXC_ID=$ID_ATUAL_CONN+1; |
---|
1062 | |
---|
1063 | echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value, connection_is_default ) VALUES ( '$PROXC_ID', 'Principal', '$Principal', 'FALSE');" > $exparqsql |
---|
1064 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1065 | echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES ( '$PROX_ID', '$PROXC_ID', 1);" > $exparqsql |
---|
1066 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1067 | let tipo1=$tipo1+1 |
---|
1068 | fi |
---|
1069 | |
---|
1070 | Alternativo=$Alternativo |
---|
1071 | if [ -z "$Alternativo" ];then |
---|
1072 | Alternativo="" |
---|
1073 | else |
---|
1074 | echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql |
---|
1075 | ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
1076 | ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "` |
---|
1077 | let PROXC_ID=$ID_ATUAL_CONN+1; |
---|
1078 | |
---|
1079 | echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name , connection_value,connection_is_default ) VALUES ( '$PROXC_ID', 'Alternativo', '$Alternativo', 'FALSE');" > $exparqsql |
---|
1080 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1081 | echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection ) VALUES ( '$PROX_ID', '$PROXC_ID', 1);" > $exparqsql |
---|
1082 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1083 | let tipo1=$tipo1+2 |
---|
1084 | fi |
---|
1085 | Comercial=$Comercial |
---|
1086 | if [ -z "$Comercial" ];then |
---|
1087 | Comercial="" |
---|
1088 | else |
---|
1089 | echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql |
---|
1090 | ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
1091 | ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "` |
---|
1092 | let PROXC_ID=$ID_ATUAL_CONN+1; |
---|
1093 | |
---|
1094 | echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,connection_is_default ) VALUES ( '$PROXC_ID', 'Comercial', '$Comercial', 'FALSE');" > $exparqsql |
---|
1095 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1096 | echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES ( '$PROX_ID', '$PROXC_ID', 2);" > $exparqsql |
---|
1097 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1098 | let tipo2=$tipo2+2 |
---|
1099 | fi |
---|
1100 | |
---|
1101 | Residencial=$Residencial |
---|
1102 | if [ -z "$Residencial" ];then |
---|
1103 | Residencial="" |
---|
1104 | else |
---|
1105 | echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql |
---|
1106 | ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
1107 | ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "` |
---|
1108 | let PROXC_ID=$ID_ATUAL_CONN+1; |
---|
1109 | |
---|
1110 | echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value, connection_is_default ) VALUES ( '$PROXC_ID', 'Residencial', '$Residencial', 'FALSE');" > $exparqsql |
---|
1111 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1112 | echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES ( '$PROX_ID', '$PROXC_ID', 2);" > $exparqsql |
---|
1113 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1114 | let tipo2=$tipo2+4 |
---|
1115 | fi |
---|
1116 | Celular=$Celular |
---|
1117 | if [ -z "$Celular" ];then |
---|
1118 | Celular="" |
---|
1119 | else |
---|
1120 | echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql |
---|
1121 | ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
1122 | ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "` |
---|
1123 | let PROXC_ID=$ID_ATUAL_CONN+1; |
---|
1124 | |
---|
1125 | echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,connection_is_default ) VALUES ( '$PROXC_ID', 'Celular', '$Celular', 'FALSE');" > $exparqsql |
---|
1126 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1127 | echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES ( '$PROX_ID', '$PROXC_ID', 2);" > $exparqsql |
---|
1128 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1129 | let tipo2=$tipo2+8 |
---|
1130 | fi |
---|
1131 | |
---|
1132 | Fax=$Fax |
---|
1133 | if [ -z "$Fax" ];then |
---|
1134 | Fax="" |
---|
1135 | else |
---|
1136 | echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql |
---|
1137 | ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass` |
---|
1138 | ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "` |
---|
1139 | let PROXC_ID=$ID_ATUAL_CONN+1; |
---|
1140 | |
---|
1141 | echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,connection_is_default ) VALUES ( '$PROXC_ID', 'Fax', '$Fax', 'FALSE');" > $exparqsql |
---|
1142 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1143 | let tipo2=$tipo2+16 |
---|
1144 | fi |
---|
1145 | tipo=`expr 1 \& $tipo1` |
---|
1146 | if [ $tipo -eq 1 ];then |
---|
1147 | echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Principal' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='1');" > $exparqsql |
---|
1148 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1149 | else |
---|
1150 | tipo=`expr 2 \& $tipo1` |
---|
1151 | if [ $tipo -eq 2 ];then |
---|
1152 | echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Alternativo' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2');" > $exparqsql |
---|
1153 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1154 | fi |
---|
1155 | fi |
---|
1156 | tipoDois=`expr 2 \& $tipo2` |
---|
1157 | if [ $tipoDois -eq 2 ];then |
---|
1158 | echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Comercial' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2' );" > $exparqsql |
---|
1159 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1160 | else |
---|
1161 | tipoDois=`expr 4 \& $tipo2` |
---|
1162 | if [ $tipoDois -eq 4 ];then |
---|
1163 | echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Residencial' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2');" > $exparqsql |
---|
1164 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1165 | else |
---|
1166 | tipoDois=`expr 8 \& $tipo2` |
---|
1167 | if [ $tipoDois -eq 8 ];then |
---|
1168 | echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Celular' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2');" > $exparqsql |
---|
1169 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1170 | else |
---|
1171 | tipoDois=`expr 16 \& $tipo2` |
---|
1172 | if [ $tipoDois -eq 16 ];then |
---|
1173 | echo -e "UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Fax'and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2'); " > $exparqsql |
---|
1174 | psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST -f $exparqsql < ${TMPTEMP}.db.pass |
---|
1175 | fi |
---|
1176 | fi |
---|
1177 | fi |
---|
1178 | fi |
---|
1179 | |
---|
1180 | |
---|
1181 | done; |
---|
1182 | done; |
---|
1183 | for i in /tmp/contatos*; do rm -f $i; done |
---|
1184 | if [ $(echo $UID_OX | grep "^[0-9]" ) ]; then |
---|
1185 | rm -Rdf ${IMAP_PATH}/q/user/$UID_OX/.$strContact |
---|
1186 | |
---|
1187 | else |
---|
1188 | rm -Rdf ${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/.$strContact |
---|
1189 | fi |
---|
1190 | |
---|
1191 | rm -f ${ARQUIVO}-${cont}.ldif |
---|
1192 | rm -f $exparqsql ${TMPTEMP}.db.pass |
---|
1193 | } |
---|
1194 | |
---|
1195 | |
---|
1196 | ################################################################# |
---|
1197 | ################## Limpeza ###################################### |
---|
1198 | ################################################################# |
---|
1199 | |
---|
1200 | usuarios |
---|