{"id":992,"date":"2014-04-18T16:13:21","date_gmt":"2014-04-18T15:13:21","guid":{"rendered":"http:\/\/blogs.silicontechnix.com\/?p=992"},"modified":"2014-04-18T16:13:21","modified_gmt":"2014-04-18T15:13:21","slug":"ftp-clean-up-script-php-delete-old-files-on-server","status":"publish","type":"post","link":"https:\/\/blogs.silicontechnix.com\/?p=992","title":{"rendered":"FTP clean-up script &#8211; PHP (delete old files on server)"},"content":{"rendered":"<p>One of my blog user &#8220;Chris&#8221; asked for FTP clean up script, so here it is:<\/p>\n<pre class=\"brush:php\">\r\n\r\n\/\/CONFIG SECTION\r\n\/\/*******************************************************\r\n\/\/ Credentials for FTP Server\r\n$source_server_ip = \"your_domain_or_IP\"; \/\/ Server IP or domain name eg: 212.122.3.77 or ftp.domain.tld\r\n\/\/ Credentials for FTP account\r\n$ftphost = \"ip_or_hostname_of_ftp\"; \/\/ FTP host IP or domain name\r\n$ftpacct = \"userid\"; \/\/ FTP account\r\n$ftppass = \"password\"; \/\/ FTP password\r\n$logs_dir = \"\/\"; \/\/FTP Remote Folder\r\n$email_notify = 'your_email@domain.com'; \/\/ Email address for backup notification\r\n$backupexpireindays=21; \/\/3 weeks expire time in days, 21 days = 7*24*60\r\n\/\/END OF CONFIG SECTION\r\n\/\/*******************************************************\r\n\r\n\r\n\/\/Do not edit below this line\r\n$backupexpireindays=($backupexpireindays*24)*3600; \/\/convert it to seconds, 24 hours * 60 minutes * 60 seconds\r\n\r\n\/\/ Delete any other backup with filetime greater than expire time, before create new backup\r\n$conn_id = ftp_connect($ftphost);\r\n$login_result = ftp_login($conn_id, $ftpacct, $ftppass);\r\n\r\nftp_chdir($conn_id, $logs_dir);\r\n$files = ftp_nlist($conn_id, \".\");\r\nforeach ($files as $filename) {\r\n        $fileCreationTime = ftp_mdtm($conn_id, $filename);\r\n        \/\/$date = date(\"F j, Y, g:i a\", ftp_mdtm($conn_id, $filename));\r\n        \/\/print \"<br>Timestamp of '$filename': $date\";\r\n        $fileAge=time();\r\n        $fileAge=$fileAge-$fileCreationTime;\r\n        if ($fileAge > $backupexpireindays) { \/\/ Is the file older than the given time span?\r\n               \/\/echo \"<br>The file $filename is older than Expire time :$expiretime ...Deleting\\n\";\r\n               ftp_delete($conn_id, $filename);\r\n               \/\/echo \"<br>Deleted<br><br>\";\r\n               }\r\n}\r\n\r\nftp_close($conn_id);\r\n \r\nprint \"Remote FTP clean up Finish deleted files older than $backupexpireindays days\"; \r\n?>\r\n<\/pre>\n<p>Enjoy !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of my blog user &#8220;Chris&#8221; asked for FTP clean up script, so here it is: \/\/CONFIG SECTION \/\/******************************************************* \/\/ Credentials for FTP Server $source_server_ip = &#8220;your_domain_or_IP&#8221;; \/\/ Server IP or domain name eg: 212.122.3.77 or ftp.domain.tld \/\/ Credentials for FTP account $ftphost = &#8220;ip_or_hostname_of_ftp&#8221;; \/\/ FTP host IP or domain name $ftpacct = &#8220;userid&#8221;; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"no","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[12,95],"tags":[453,456,294,455,8,454],"class_list":["post-992","post","type-post","status-publish","format-standard","hentry","category-programming","category-system-administration","tag-cleanup","tag-delete","tag-ftp","tag-old-files","tag-php","tag-remote"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p12j6H-g0","_links":{"self":[{"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=\/wp\/v2\/posts\/992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=992"}],"version-history":[{"count":2,"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=\/wp\/v2\/posts\/992\/revisions"}],"predecessor-version":[{"id":994,"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=\/wp\/v2\/posts\/992\/revisions\/994"}],"wp:attachment":[{"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.silicontechnix.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}