Форум системных администраторов

General => Главный => Тема начата: Triangle от 09 марта 2016, 13:49:12

Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)
Отправлено: Triangle от 09 марта 2016, 13:49:12
Пните в нужном направлении.
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?
Отправлено: shs от 09 марта 2016, 14:04:15
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-FTP-Client-db6fe0cb#content
Возможно поможет
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?
Отправлено: risc от 09 марта 2016, 15:25:03
Triangle,на самом сервере скрипт на vbs в планировщик...
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?
Отправлено: Triangle от 09 марта 2016, 16:06:02
Кажется что то нашел...
$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 юниксового сервера.
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?
Отправлено: shs от 09 марта 2016, 16:10:05
Кажется что то нашел...
$timex = get-date
$timex = $timex.AddDays(-7)
dir | where {$_.lastwritetime -le $timex} | del -whatif
Да это понятно, тут загвоздка в том, что тебе надо работать не с локальной папкой, а с ftp, а для этого тебе может пригодится модуль, ссылку на который я привел выше.
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)
Отправлено: Triangle от 09 марта 2016, 16:12:59
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 сервере.
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)
Отправлено: oink :) от 09 марта 2016, 21:15:37
#!/bin/bash

find /path/to/your/ftp/directory -mtime +14 -exec rm -r {} \;
#нопремер удаляет все файлы старше двух недель
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)
Отправлено: VanDyke от 09 марта 2016, 21:16:23
так надо с фтп удалять или локально?
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)
Отправлено: oink :) от 09 марта 2016, 21:18:45
так надо с фтп удалять или локально?
да вроде как
да я подумал а фигли я мозг морочу, если могу пускать скрипт на ftp сервере
Название: Удаление c ftp сервера файлов, чей возраст превышает N дней?(php/perl/bash)
Отправлено: Triangle от 09 марта 2016, 22:18:41
Да я чота хотел сначала удалять приконектившись к ftp, а потом подумал, ой.... у тебя же на ftp линупс и крон...


Updated: 09 March 2016, 22:19:37

oink :), спс, завтра всё пробовать буду.