Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

1. Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 22/11/2016 - 07:27h

Preciso de uma orientação de como fazer o seguinte processo em shell script no Debian 8.1
Localizar e mover arquivos modificados a X dias mantendo a estrutura de pastas deixando um link simbólico do arquivo no lugar do arquivo original.

/mnt/compartilhamento/users/xxxx/xxx/2015/xxxx/xxx.txt -> /bkp/compartilhamento/users/xxxx/xxx/2015/xxxx/xxx.txt

São duas partições sda1 e sdb sendo q os arquivos estão no sdb e pretendo mover para sda afim de utilizar o espaço q tenho disponível, mas não posso deixar que os usuários deixem de ter acesso a ele pelo caminho que já estão acostumados

alguém tem alguma ideia de como fazer isso de uma forma que vasculhe toda a pasta copie o arquivo e a estrutura e no lugar do original deixe o link simbólico e caso exista o link ja não faça nada passe para o próximo arquivo ?


  


2. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 22/11/2016 - 16:18h

Ninguem ???



3. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 22/11/2016 - 16:43h

jjcsalomao escreveu:

Ninguem ???


Boa tarde, tem alguma pasta especifica da qual você vai retirar estes arquivos ? E quantos dias ele deve ter sido alterado ?

att


4. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 22/11/2016 - 16:56h

O que você quer é mover os arquivos localizados em "X" pasta para a outra pasta se a data do arquivo for de modificação N dias e criar um link simbolico apontando para o novo local para que os usuarios possam usar estes arquivos como se eles não tivessem sido movidos é isso ?


5. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 22/11/2016 - 17:29h

plimo263 escreveu:

O que você quer é mover os arquivos localizados em "X" pasta para a outra pasta se a data do arquivo for de modificação N dias e criar um link simbolico apontando para o novo local para que os usuarios possam usar estes arquivos como se eles não tivessem sido movidos é isso ?


Exatamente isso plimo263, só que eu gostaria de move lo mantendo a mesma estrutura de pastas para efeito organizacional pois tenho 1.4 tb de arquivos neste local



6. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 22/11/2016 - 17:51h

jjcsalomao escreveu:

plimo263 escreveu:

O que você quer é mover os arquivos localizados em "X" pasta para a outra pasta se a data do arquivo for de modificação N dias e criar um link simbolico apontando para o novo local para que os usuarios possam usar estes arquivos como se eles não tivessem sido movidos é isso ?


Exatamente isso plimo263, só que eu gostaria de move lo mantendo a mesma estrutura de pastas para efeito organizacional pois tenho 1.4 tb de arquivos neste local


Pelo que eu entendi vou colocar uma ambiente aí você verifica se é isto que você quer.
Tenho um dispositivo /dev/sdb1 montado em /mnt e quero mover todos os diretorios em /home para este diretorio, mas quero manter links simbolicos para acesso dos demais.

#!/bin/bash
# Variavel onde se localiza o home
DIR='/home'
# Fazendo o loop no resultado do ls e movendo tudo que ele encontrar para o /mnt
for arq in `ls $DIR`;do
# movendo cada arquivo para /mnt
mv $DIR/$arq /mnt
# criando o link simbolico de cada arquivo
ls -s /mnt/$arq $DIR/$arq
done

acho que isto deve resolver o que você deseja. Faça um backup antes ou teste em um diretorio na sua home para ver se este é o resultado desejado.




7. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 22/11/2016 - 18:08h

plimo263 escreveu:

jjcsalomao escreveu:

plimo263 escreveu:

O que você quer é mover os arquivos localizados em "X" pasta para a outra pasta se a data do arquivo for de modificação N dias e criar um link simbolico apontando para o novo local para que os usuarios possam usar estes arquivos como se eles não tivessem sido movidos é isso ?


Exatamente isso plimo263, só que eu gostaria de move lo mantendo a mesma estrutura de pastas para efeito organizacional pois tenho 1.4 tb de arquivos neste local


Pelo que eu entendi vou colocar uma ambiente aí você verifica se é isto que você quer.
Tenho um dispositivo /dev/sdb1 montado em /mnt e quero mover todos os diretorios em /home para este diretorio, mas quero manter links simbolicos para acesso dos demais.

#!/bin/bash
# Variavel onde se localiza o home
DIR='/home'
# Fazendo o loop no resultado do ls e movendo tudo que ele encontrar para o /mnt
for arq in `ls $DIR`;do
# movendo cada arquivo para /mnt
mv $DIR/$arq /mnt
# criando o link simbolico de cada arquivo
ls -s /mnt/$arq $DIR/$arq
done

acho que isto deve resolver o que você deseja. Faça um backup antes ou teste em um diretorio na sua home para ver se este é o resultado desejado.


mas como faria isso por data de modificação, eu tinha pensado em pegar somente os modificados a 30 dias atras por exemplo e os demais q estão no mesmo diretório manter nisto eu to meio sem saber como prosseguir



8. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8

Patrick
Patrick03

(usa Ubuntu)

Enviado em 22/11/2016 - 18:36h

Não cria um link, mas é usado para gerenciamento de arquivos via terminal:

sudo apt-get install ranger 


---------------------------------------
Corrija-me quando necessário!

https://bartoi.blogspot.com.br/
---------------------------------------



9. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 22/11/2016 - 22:07h

jjcsalomao escreveu:

plimo263 escreveu:

jjcsalomao escreveu:

plimo263 escreveu:

O que você quer é mover os arquivos localizados em "X" pasta para a outra pasta se a data do arquivo for de modificação N dias e criar um link simbolico apontando para o novo local para que os usuarios possam usar estes arquivos como se eles não tivessem sido movidos é isso ?


Exatamente isso plimo263, só que eu gostaria de move lo mantendo a mesma estrutura de pastas para efeito organizacional pois tenho 1.4 tb de arquivos neste local


Pelo que eu entendi vou colocar uma ambiente aí você verifica se é isto que você quer.
Tenho um dispositivo /dev/sdb1 montado em /mnt e quero mover todos os diretorios em /home para este diretorio, mas quero manter links simbolicos para acesso dos demais.

#!/bin/bash
# Variavel onde se localiza o home
DIR='/home'
# Fazendo o loop no resultado do ls e movendo tudo que ele encontrar para o /mnt
for arq in `ls $DIR`;do
# movendo cada arquivo para /mnt
mv $DIR/$arq /mnt
# criando o link simbolico de cada arquivo
ls -s /mnt/$arq $DIR/$arq
done

acho que isto deve resolver o que você deseja. Faça um backup antes ou teste em um diretorio na sua home para ver se este é o resultado desejado.


mas como faria isso por data de modificação, eu tinha pensado em pegar somente os modificados a 30 dias atras por exemplo e os demais q estão no mesmo diretório manter nisto eu to meio sem saber como prosseguir



Plimo263, no momento to efetuando backup,mas por gentileza da uma olhada no código abaixo que montei com base na sua orientação juntamente com um arquivo de backup incremental para localizar por tempo para ver se a lógica está certa, como o arquivo de backup é grande não consigo testar hj pois não quero interferir na maquina q está fazendo o backup, vou testar com uns arquivos e pastas de testes depois q o backup estiver ok, mas por enquanto obrigado pelo auxilio.


#!/bin/bash
SRCDIR="/mnt/backup" #diretórios que serão feitos backup
DSTDIR=/home/suporte/backup #diretório de destino do backup
TIME_FIND=+20160 #+xx busca arquivos criados existentes a xx minutos (arquivos que tenham mais de xx minutos)

find $SRCDIR -type f -cmin $TMP_FIND -exec cp -r -p -v $ARQ{} $DSTDIR ";"

if [ $? -eq 0 ] ; then
for $ARQ in `ls $SRCDIR`;do
rm -r $SRCDIR/$ARQ
ls -s $DSTDIR/$ARQ $SRCDIR/$ARQ
done
else
echo "ERRO! "
fi
done




10. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 22/11/2016 - 22:09h

Patrick03 escreveu:

Não cria um link, mas é usado para gerenciamento de arquivos via terminal:

sudo apt-get install ranger 


---------------------------------------
Corrija-me quando necessário!

https://bartoi.blogspot.com.br/
---------------------------------------


Vou dar uma olhada nele, obrigado pela indicação


11. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Matheus Moretti
MatheusMoretti

(usa Debian)

Enviado em 24/11/2016 - 17:00h

#!/bin/bash
SRCDIR="/mnt/backup" #diretórios que serão feitos backup
DSTDIR=/home/suporte/backup #diretório de destino do backup
TIME_FIND=+30 #+xx busca arquivos criados existentes a xx dias (arquivos que tenham mais de xx dias)

find ${SRCDIR} -type f -ctime ${TIME_FIND} | xargs -I {} /bin/bash -c 'ln -s ${DSTDIR}/$(basename "$1") "$1"' - {}

[/code]
[/quote]

Tenta desta maneira


12. Re: Script para mover arquivos e criar link simbólico simultaneamente Debian 8 [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 28/11/2016 - 10:33h

MatheusMoretti escreveu:

#!/bin/bash
SRCDIR="/mnt/backup" #diretórios que serão feitos backup
DSTDIR=/home/suporte/backup #diretório de destino do backup
TIME_FIND=+30 #+xx busca arquivos criados existentes a xx dias (arquivos que tenham mais de xx dias)

find ${SRCDIR} -type f -ctime ${TIME_FIND} | xargs -I {} /bin/bash -c 'ln -s ${DSTDIR}/$(basename "$1") "$1"' - {}

[/code]


Tenta desta maneira[/quote]
Desculpa a demora, mas não funcionou



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts