Como posso fazer o apt-mirror salvar arquivos de repositórios no servidor ftp fornecido pelo roteador?

1

Eu tenho um disco rígido externo conectado ao meu roteador WRT1900AC, que possui suporte interno a ftp. O acesso ftp é protegido por usuário e senha.

Eu gostaria de usar o apt-mirror para baixar os repositórios do Ubuntu no disco rígido externo.

Eu tentei modificar:

/etc/apt/mirror.list

definindo o base_path da seguinte forma:

ftp://marcelo:[email protected]/linux/apt-mirror

a pasta / linux / apt-mirror existe no servidor ftp e eu tenho permissões de escrita nele.

Quando executo o apt-mirror, obtenho:

sudo apt-mirror 
apt-mirror: can't create ftp://marcelo:[email protected]/linux/apt-mirror/mirror directory at /usr/bin/apt-mirror line 342.

O motivo pelo qual eu quero fazer isso é permitir que qualquer pessoa na minha LAN acesse os repositórios e não use o espaço limitado na unidade SDD do meu laptop.

    
por Marcelo Ruiz 01.10.2015 / 21:21

1 resposta

0

Eu criei o script a seguir, caso alguém esteja interessado.

O script monta um compartilhamento de samba no sistema de arquivos local, executa o apt-mirror e desmonta o compartilhamento de samba quando ele é concluído.

Este é praticamente o meu primeiro script, então tenho certeza que há muito espaço para melhorias

#!/bin/bash
# This scripts expects cifs-utils installed and apt-mirror 
# installed and configured, and all samba shares properly configured


######### Variables Definition ##############

mountDir='/mnt/apt-mirrors'
sambaShare="//myserver/apt-mirrors"
sambaUser="myUser"
sambaPwd="mySambaPassword"

######### End Variables Definition ##########

clear

echo
echo "********** Starting Execution **********"
echo

if [ ! -d $mountDir ]; then
    echo "creating dir: $mountDir.."
    mkdir $mountDir
    echo "$mountDir created"
else
    echo "dir $mountDir exists"
fi

mounted () {
    eval "grep -qs $mountDir /proc/mounts"
}

echo

if mounted; then
    echo "something is mounted in $mountDir. Unmounting..."
    umount -f $mountDir
    echo
fi

echo "mounting share $sambaShare in dir $mountDir..."
mount -t cifs -o username=$sambaUser,password=$sambaPwd $sambaShare $mountDir 

if mounted; then
    echo "samba share $sambaShare successfuly mounted"
    echo
    echo "********* starting apt-mirror **********"
    echo
    (exec /usr/bin/apt-mirror)
    echo
    echo "********* apt-mirror finished **********"
    echo
    echo "unmounting $mountDir"
    umount -l $mountDir
fi

echo

if ! mounted; then
    echo "unmount successful"
else
    echo "something went wrong: $sambaShare is still mounted"
    echo "forcing unmount..."
    umount -f $mountDir
fi

echo

echo "cleaning $mountDir..."
rm -r $mountDir

echo
echo "********** Execution Finished **********"

exit

Você pode substituir os valores das variáveis para atender às suas necessidades

    
por Marcelo Ruiz 06.10.2015 / 05:32