How to create symlink for latest file only?


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Old 1 Week Ago
How to create symlink for latest file only?

Hello,

On Solaris 10, here are entries for logs in httpd.conf
Code:
ErrorLog "|/export/apache/apache-2.2.17/bin/rotatelogs -l -f /var/log/apache/error_log.%Y%m%d 86400"

It keeps creating daily logs with below names -
Code:
-rw-r--r--   1 root     root     1016747232 Apr  5 23:59 /var/log/apache/error_log.20190405
-rw-r--r--   1 root     root     946721391 Apr  6 23:59 /var/log/apache/error_log.20190406
-rw-r--r--   1 root     root     1092546540 Apr  7 23:59 /var/log/apache/error_log.20190407
-rw-r--r--   1 root     root     1172486303 Apr  8 23:59 /var/log/apache/error_log.20190408
-rw-r--r--   1 root     root     909466871 Apr  9 23:59 /var/log/apache/error_log.20190409
-rw-r--r--   1 root     root     916731172 Apr 10 23:59 /var/log/apache/error_log.20190410
-rw-r--r--   1 root     root     785326845 Apr 11 23:59 /var/log/apache/error_log.20190411
-rw-r--r--   1 root     root     463003111 Apr 12 13:38 /var/log/apache/error_log.20190412

I want to create a symlink 'error_log' and that should point to latest log file. One idea is, to create two cronjobs for 00:00 midnight, something like this
Code:
00 00 * * * ln -s /var/log/apache/error_log.20190412 /var/log/apache/error_log
59 00 * * * unlink /var/log/apache/error_log

But how will I tell cron, to pick only latest error_log.xxxxxx ? Is it possible ?

Thanks
This User Gave Thanks to solaris_1977 For This Post:
samthewildone (5 Days Ago)
# 2  
Old 1 Week Ago
Fortunately, your file names are "sort friendly". Try
Code:
ls  *log.* | sort | tail -1

This User Gave Thanks to RudiC For This Post:
samthewildone (5 Days Ago)
# 3  
Old 1 Week Ago
Yes, that can help. How can I pass that name to cronjob ?

Alternatively I thought of passing same syntax as mentioned in logrotate, but that fails
Code:
bash-3.2# ls -l /var/log/apache/error_log.%Y%m%d
/var/log/apache/error_log.%Y%m%d: No such file or directory
bash-3.2#

If this can work, I can pass that in cron in similar way
Code:
00 00 * * * ln -s /var/log/apache/error_log.%Y%m%d /var/log/apache/error_log
59 00 * * * unlink /var/log/apache/error_log


Last edited by solaris_1977; 1 Week Ago at 05:53 PM..
This User Gave Thanks to solaris_1977 For This Post:
samthewildone (5 Days Ago)
# 4  
Old 1 Week Ago
shell uses backticks and $( ) to turn program output into strings.

Code:
cd /var/log ; ln -s $(ls  *error_log.* | sort | tail -1) error_log

These 2 Users Gave Thanks to Corona688 For This Post:
samthewildone (5 Days Ago) solaris_1977 (1 Week Ago)
# 6  
Old 6 Days Ago
I'd not bother with the sort. The output should be lexically ordered anyway, so it's redundant.

In some OS, you might need to add a -f to get it to replace the sym-link, and of course you need permission to write to the directory (which root will have, naturally)




Robin
# 7  
Old 5 Days Ago
Quote:
Originally Posted by Corona688
shell uses backticks and $( ) to turn program output into strings.

Code:
cd /var/log ; ln -s $(ls  *error_log.* | sort | tail -1) error_log

Quote:
Originally Posted by rbatte1
I'd not bother with the sort. The output should be lexically ordered anyway, so it's redundant.

I would also be inclined to use the reverse-sort option to ls, and head instead of tail, thus:
Code:
cd /var/log ; ln -s $(ls -r  *error_log.*  | head -1) error_log

Andrew
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Symlink dellanicholson UNIX for Beginners Questions & Answers 3 09-27-2017 03:23 AM
Symlink creation bandion Shell Programming and Scripting 3 06-22-2016 08:56 PM
Picking the latest file based on a timestamp for a Dynamic file name chillblue Shell Programming and Scripting 4 06-20-2016 11:30 AM
Remove symlink and target lsy UNIX for Dummies Questions & Answers 4 06-15-2015 08:57 AM
Creating conditional symlink sussus2326 Ubuntu 8 06-20-2013 12:42 AM
Tomcat 6.0 fails to read symlink(symbolic link) file KingaKoopa UNIX and Linux Applications 3 06-07-2013 12:07 PM
Shell script to get the latest file from the file list and move saravan_an Shell Programming and Scripting 2 04-04-2013 10:04 AM
create t a filelist with the latest file by YYYYMMDD and move to subfolder kedrick Shell Programming and Scripting 3 08-28-2012 11:59 PM
File count for symlink using find command dixits Shell Programming and Scripting 4 03-28-2012 05:27 PM
ln -s creates symlink in symlink, if [ -f ... ] says file that exists doesn't exist Xaymar Shell Programming and Scripting 0 11-22-2011 02:55 PM
symlink on link file raghu.iv85 Solaris 1 05-04-2010 06:37 PM
To get the latest file spkandy Shell Programming and Scripting 2 04-08-2009 12:37 AM
get latest file inquirer Shell Programming and Scripting 4 04-02-2009 11:15 AM
how to get the latest file shehzad_m Shell Programming and Scripting 3 01-29-2009 05:07 PM
creating symlink rama.honge UNIX for Dummies Questions & Answers 1 06-22-2008 04:35 AM