Автор Тема: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)  (Прочитано 3944 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 7128
  • Рейтинг: 48
  • Пол: Мужской
  • Откуда: замкадыш
Пните в нужном направлении.
« Последнее редактирование: 09 марта 2016, 16:09:34 от Triangle »
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city

Оффлайн risc

  • Старожил
  • ****
  • Сообщений: 848
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: раша
Triangle,на самом сервере скрипт на vbs в планировщик...
Кто понял жизнь, тот не торопится...

Онлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 7128
  • Рейтинг: 48
  • Пол: Мужской
  • Откуда: замкадыш
Кажется что то нашел...
$timex = get-date
$timex = $timex.AddDays(-7)
dir | where {$_.lastwritetime -le $timex} | del -whatif


Updated: 09 March 2016, 16:09:06

Но мне лучше бы PHP/Perl/Bash, то что можно пустить с cron юниксового сервера.
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Кажется что то нашел...
$timex = get-date
$timex = $timex.AddDays(-7)
dir | where {$_.lastwritetime -le $timex} | del -whatif
Да это понятно, тут загвоздка в том, что тебе надо работать не с локальной папкой, а с ftp, а для этого тебе может пригодится модуль, ссылку на который я привел выше.

Онлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 7128
  • Рейтинг: 48
  • Пол: Мужской
  • Откуда: замкадыш
perl
<?php
  $path = 'ftmp/';
  if ($handle = opendir($path)) {
     while (false !== ($file = readdir($handle))) {
        if ((time()-filectime($path.$file)) < 86400) { 
           if (preg_match('/\.pdf$/i', $file)) {
              unlink($path.$file);
           }
        }
     }
   }
?>
24 часа


bash
cd /home/user1/test

while [ `ls -lAR | grep ^- | wc -l` < 3 ] ; do

    rm `ls -t1 /home/user/test | tail -1`
    echo " - - - "

done
А сойдет, можно оставлять N последних.


Updated: 09 March 2016, 16:24:45

shs, да я подумал а фигли я мозг морочу, если могу пускать скрипт на ftp сервере.
« Последнее редактирование: 09 марта 2016, 16:24:45 от Triangle »
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.

Оффлайн oink :)

  • Постоялец
  • ***
  • Сообщений: 337
  • Рейтинг: 8
  • Пол: Мужской
  • глумливый прислужник
    • Просмотр профиля
  • Откуда: 127.0.0.1
#!/bin/bash

find /path/to/your/ftp/directory -mtime +14 -exec rm -r {} \;
#нопремер удаляет все файлы старше двух недель
"Вы держитесь здесь, вам всего доброго, хорошего настроения и здоровья" (c) Медведев

Оффлайн VanDyke

  • Модераторы
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
так надо с фтп удалять или локально?
Not as ultimate as 42, but pretty close...

Оффлайн oink :)

  • Постоялец
  • ***
  • Сообщений: 337
  • Рейтинг: 8
  • Пол: Мужской
  • глумливый прислужник
    • Просмотр профиля
  • Откуда: 127.0.0.1
так надо с фтп удалять или локально?
да вроде как
да я подумал а фигли я мозг морочу, если могу пускать скрипт на ftp сервере
"Вы держитесь здесь, вам всего доброго, хорошего настроения и здоровья" (c) Медведев

Онлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 7128
  • Рейтинг: 48
  • Пол: Мужской
  • Откуда: замкадыш
Да я чота хотел сначала удалять приконектившись к ftp, а потом подумал, ой.... у тебя же на ftp линупс и крон...


Updated: 09 March 2016, 22:19:37

oink :), спс, завтра всё пробовать буду.
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.