I have been scripting a shell script to allow me to easily create htaccess users and add them to existing htaccess groups etc.
However, the main part of the script that I am trying to accomplish is to store additional metadata in comments in the htpasswd file. I am trying to store an expiry date in the comments, such that the htpasswd file can be scanned and any users with expiry dates that are in the past can be deleted.
The syntax of the htpasswd file with expiry date metadata is:
I am now trying to write the script to scan the htpasswds file and delete expired users. This is what the script needs to do:
Check each line in htpasswds
If the user in htpasswds has no comment, or if the expiry date of the current user is a date that has not yet passed, then skip this user.
Else, delete this user from the htpasswds now.
Scan the htgroups file for all instances of this user and delete them (being weary of comments in the file)
If, after deleting the user from a group, the group is left empty, delete the group (as well as a few lines of comments appearing above the group) from htgroups.
This is my current code to achieve the above steps. I stopped however because I am sure there is a more efficient way to achieve this (Perl, Awk, Sed, ..., I'm not really sure).
Try something like this:
PS
It's only safe if you hardcode EXPDATE, do not get from an untrusted source.
Thank! That works great.
The other (harder) part, however, is to also delete these users from htgroups (I'm guessing this would need to be done before deleting the users from htpasswd)
I'm sure it may be easy and this can be done at the same time like this (pseudo-code):
But please, if you want to get real help give real examples of your input.
I'm sure it may be easy and this can be done at the same time like this (pseudo-code):
But please, if you want to get real help give real examples of your input.
Thanks for your assistance. I am not familiar with Perl but I will give this a go.
Also, here is some examples of the input:
htpasswd:
htgroups:
If user "abcd" was removed from htpasswd, then the text:
should be removed from htgroups.
Sorry, I forget to add about "real examples" - remove all confidential information if there is.
Ok, for trying to write the script this will be enough:
One more question. What to do if we have a such record in htgroups (and only abcd is expired):
Sorry, I forget to add about "real examples" - remove all confidential information if there is.
Ok, for trying to write the script this will be enough:
One more question. What to do if we have a such record in htgroups (and only abcd is expired):
Yeah all records are randomly generated. This file isn't in use.
Hi All,
I am entering StartDate and EndDate as parameters to script. Want to have an check saying, "If StartDate is greater than EndDate then don't execute the script".
Pseudo Code:
if
then
Execute script
else
exit 0
fi
Can you please help me on the same?
Thanks and... (4 Replies)
Hi,
I want to convert two datetime fields to find out if the difference is one hour, in linux I've done this by converting both the datetime values to unix epoch time and subtracting them to find out if the difference is more than 3600s, however this does not work in hp-ux.
I've these... (3 Replies)
Hi to all.
When you have to compare a lot of dates in a SH code, there is a way to directly compare? For example, how can I check if two dates differ in less than a week?
Thank's for reading. (2 Replies)
I want to compare a list of dates in a file with today's date & list only dates that are less than only 60 days old . please help . the date in the file are in format
11-FEB-2009
02-FEB-2009
26-JAN-2009
24-JAN-2009
13-JAN-2009
16-DEC-2008
10-DEC-2008
01-DEC-2008
25-NOV-2008
19-NOV-2008... (3 Replies)
Hi all,
How to check whether the given the two dates is minimal.
example:
Date 1 : 23-03-2008 with timestamp
Date 2: 20-03-2008 With tmestamp
I want to compare the twodates and which it gives the minimum date
i wnat to get the output like this below
output: the Date2 is... (1 Reply)
Hi all,
I've written a script which gives the below information...
End Date&Time: 2008-10-21 10.54.37
Now i want to calculate this time with the current time.. and if its more than 48 hours past with the current time it should echo "48 Hours back"
Please help me..
thanks in... (4 Replies)
hi all :)
how can in compare yyyy/dd/mm with yyyy/dd/mm in perl i want the result like grater than or less than the given date...
thanks in advance (3 Replies)
Hi
I am writing a unix program. In that, i should compare two dates.
I would like to know how to compare two dates in unix-whether they are same or not.
pls help (5 Replies)
I have a log file with date format like
10-Oct-02 13:20:29 .....
at the beginning of each line in the log file, and I need to grep data from this file to list the lines with date no longer than one days.
I tried to use awk to do this but it looks very complicated to do it.
Is there... (6 Replies)