The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Удаление папки на ftp"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Удаление папки на ftp"  +/
Сообщение от Сергей email(??) on 18-Апр-12, 17:36 
Добрый день.
Такой скрипт:
--
#!/bin/bash
USERNAME=""
PASSWORD=""
SERVER=""
BACKUPDATE=`date +%Y-%m-%d`;
OLDDATE=`date +%Y-%m-%d --date='5 days ago'`;
FROM="/root/backup/_${BACKUPDATE}/"
TO="/_dump/_${BACKUPDATE}/"
OLDDIR="/_dump/_${OLDDATE}/"
FTP="$(which ftp)"

$FTP -n $SERVER <<EOT
quote USER $USERNAME
quote PASS $PASSWORD
mkdir ${TO}
prompt
lcd ${FROM}
cd ${TO}
mput *.gz
cd ${OLDDIR}
rm ${OLDDIR}
rmdir ${OLDDIR}
quit
EOT
--

Ответ
на rm/rmdir - Directory not empty
--ignore-fail-on-non-empty - No such file or directory

Как удалить мне папку ${OLDDIR}?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Удаление папки на ftp"  +/
Сообщение от pavlinux (ok) on 19-Апр-12, 02:19 
> Как удалить мне папку ${OLDDIR}?

# ncftpget -u username -p password -R -DD ftp://${SERVER}/${OLDDIR}

# lftp -u username,password -e "mirror --reverse --delete ${OLDDIR}" ${SERVER}

----

На гуглю вас фейс-контроль не пускает?! :)


#!/bin/bash

# Script for retrieving all files on a an ftp server then deleting them.
#
# Requires ncftp and stock ftp client.
#
# We have to do some funkyness since there is no easy way of recursively deleting
#   remote directories.  We use ncftp to download all files and delete them on successfull
#   download. This ,however, leaves empty directories.  So we download the empty directory
#   tree to FSTREEDIR to list all directories to delete(we can't trust the download directory
#   because other directories may exist there). Those directories are then passed to the
#   usual ftp client to delete.

# @todo - store credentials in a file

FTPSERVER=10.0.1.150
DOWNLOADDIR=/tmp/dl
FSTREEDIR=$DOWNLOADDIR/fstree
USERNAME=bart
PASSWORD=dude
DELETEREMOTEFILES=1


if [ $DELETEREMOTEFILES -eq 1 ]
then
  DELFILESFLAG="-DD"
else
  DELFILESFLAG=""
fi

echo "Downloading Reports...
"

cd $DOWNLOADDIR
ncftpget -u $USERNAME -p $PASSWORD -R $DELFILESFLAG ftp://$FTPSERVER


# Delete Files after download
if [ $DELETEREMOTEFILES -eq 1 ]
then
    echo "Deleting Remote Reports...
    "

    RMSTRING=""
    
    # if fstree dir exists empty it and recreate it
    if [ ! -d "$FSTREEDIR" ]; then
      mkdir $FSTREEDIR
    else
      rm -rf $FSTREEDIR/*
    fi

    # Copy remote directory structure to FSTREEDIR
    cd $FSTREEDIR
    ncftpget -u $USERNAME -p $PASSWORD -R $DELFILESFLAG ftp://$FTPSERVER

    # Generate list of directories to delete
    for D in `find $FSTREEDIR -type d| sort -r`
    do
      if [ ! "$D" = "$FSTREEDIR" ]; then
        RMSTRING="$RMSTRING
        rmdir ${D#$FSTREEDIR/}"
      fi
    done

# Delete remote file structure
ftp -i -n <<EOF
open $FTPSERVER
user $USERNAME $PASSWORD
$RMSTRING
EOF

    # delete old FSTREEDIR
    rm -rf $FSTREEDIR

fi

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру