Веб-интерфейс для обмена файлами на сервере с автоматическим удалением через x дней

В настоящее время у меня есть доступ к FTP-серверу, с файлами, загруженными на них. Мне было интересно узнать, как:

Automatically delete files on a specific folder on the FTP server which are x days old?

Я довольно новичок в Linux/Unix, я читал, что люди предлагают использовать Cronjob, который запускается каждую ночь, чтобы удалить эти файлы. Я знаю, что на сервере работает какой-то вариант Linux. Тем не менее, я ищу что-то более элегантное:

В настоящее время я не знаю, установлен ли на сервере PHP или Perl и т. Д. Или могу ли я их установить. Но если есть какие-либо альтернативы с открытым исходным кодом для достижения этой цели:

1) Allow the user a web-based interface to upload files to the server 2) Allow another user to download the file from the same interface 3) The server automatically keeps track of the file from the date of upload and deletes files which are x days old

Буду признателен за любые предложения. Я не смог найти никаких решений с открытым исходным кодом из первоначального поиска Google...

1 ответ

Решение

Добро пожаловать в мир Linux. На самом деле crontab - это очень элегантный способ ведения дел, и вы должны следовать советам, которые вы получили до сих пор. Это способ планирования задач в Linux. Если вы не хотите снова закодировать колесо, просто используйте crontab.

Команда, которую вы ищете:

find /path/to/your/folder -mtime +[days old]

например:

sysadmin@omg:~/sync/0434$ find . -mtime +180
./201305_10min.csv
./201308_10min.csv
./201307_10min.csv
./201303_10min.csv
./201312_10min.csv
./201301_10min.csv
./201311_10min.csv
./201302_10min.csv
./201306_10min.csv
./201304_10min.csv
./201211_10min.csv
./201401_10min.csv
./201309_10min.csv
./201212_10min.csv
./201310_10min.csv

Это покажет все файлы старше 180 дней...

Чтобы удалить эти файлы, я бы добавил:

find . -mtime +180 | xargs rm

xargs будет передавать каждую строку, возвращаемую из find, в качестве аргумента

И если я это сделаю, я никогда не буду беспокоиться о файлах старше 180 дней в моей системе.

Веб-интерфейс - это сама тема. Вы должны быть знакомы с HTML-формами, методами GET/POST для взаимодействия с клиентом и, вероятно, использовать PHP-метод ftp_put для загрузки на ваш сервер.

http://www.w3schools.com/html/html_forms.asp
http://php.net/manual/en/function.ftp-put.php

Также обратите внимание, что указание вашего веб-сервера на ваш каталог ftp будет перечислять его содержимое (файлы), которые можно загрузить одним щелчком мыши, так что вам снова не нужно кодировать веб-интерфейс самостоятельно. Например попробуйте:

sudo apt-get install apache2
sudo rm /var/www/index.html
sudo cp -r /tmp/* /var/www
sudo chown -R www-data:www-data /var/www

Введите адрес вашего сервера в браузере:

http://your-server-IP

Вы должны увидеть нечто похожее на ваше требование: 2) Разрешить другому пользователю загружать файл из того же интерфейса.

Я надеюсь, что вы найдете это полезным и вводным для Linux. Запустите веб-интерфейс для загрузки файлов - это чисто веб-дизайн, а не вопрос linux, задайте в комментариях все, что может вас смущать. Я постараюсь прояснить для вас. Но, пожалуйста, узнайте, по крайней мере, какой дистрибутив вы используете, а не "какой-то вариант Linux".

Другие вопросы по тегам