Sponsored Content
Full Discussion: Help with rotating files
Top Forums Shell Programming and Scripting Help with rotating files Post 303040839 by Cacializ on Thursday 7th of November 2019 01:40:39 PM
Old 11-07-2019
Help with rotating files

Hello:
I have a script that gets the ACLs of the /home directory and its contents with getfacl and writes them to a file. The script is run by a cron job and I don't want it to rewrite or append to an already existing file. The point of backing permissions up is because I may need to restore them. But I don't want to store every single created file either.

The files don't need to have a specific naming convention. In fact, I took advantage of this: I decided to name the files after the date they were created:
Code:
#!/bin/sh
readonly file="$(date +'%Y-%m-%d')"
getfacl -pR /home > "/var/acl_backups/$file"

This has the advantage that the most recent files are alphabetically greater than older ones, so I thought of putting them in the positional parameters and delete the one I didn't want to preserve. For example, if I wanted to have a maximum of 7 files in the /var/acl_backups directory:
Code:
#!/bin/sh
LC_COLLATE=C set -- [[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]
if [ $# -ge 7 ]
then
    rm -- "$7"
fi

readonly file="$(date +'%Y-%m-%d')"
getfacl -pR /home > "/var/acl_backups/$file"

Changing the locale of LC_COLLATE may be unnecessary, but I decided to change it just to be sure it sorts numbers from 0 to 9.

My question is: is this a reliable way to rotate files? I thought of using logrotate was well, but as far as I know, it would mean that every file would have the same name except for a number at the end. If I ever need to restore them with setfacl having the date in their names is very convenient.

Thanks in advance.

Last edited by Cacializ; 11-07-2019 at 02:57 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Rotating a String

Hi folks, I want to rotate a string in Clock or Ani Clock wise. That is If the string is "TAMIL" the out put should be TAMIL AMILT MILTA ILTAM LTAMI TAMIL Please do help. (1 Reply)
Discussion started by: bubeshj
1 Replies

2. Solaris

rotating the syslogd and messages files

Im about to install a sunfreeware program called logrotate which does exactly what it says on the tin....just a quick question ..if its going to rename messages to messages.0 etc do I need to issue a HUP to syslogd after doing this or will the new messages file get created automatically cheers (2 Replies)
Discussion started by: hcclnoodles
2 Replies

3. Shell Programming and Scripting

awk - Rotating an array 90 degrees

Hi All, I have some data (below) that I need to rotate 90 degrees - in other words I want to flip each row into a column. I've found the following code in the book "Effective awk programming" but it doesn't work on my input data. I've used arrays before but I can't make it work... can... (3 Replies)
Discussion started by: pondlife
3 Replies

4. UNIX for Advanced & Expert Users

logrotate isn't rotating files any longer

I have been using logrotate for quite awhile now. Most logs are rotated daily, using /etc/cron.daily. I noticed that the logs in question have not been rotated since April 6, but daily up to that point. I have logrotate in /etc/cron.daily. The basic command is: /usr/sbin/logrotate... (1 Reply)
Discussion started by: manouche
1 Replies

5. Shell Programming and Scripting

Rotating logs in Perl without message loss

(I'm aware log rotation is a common subject, but I tried searching and couldn't find an answer) For some time now, I've been using the Logfile::Rotate module to rotate logs in a log-monitoring script. So far, I haven't experienced any problems, and it works great because I can use it in Linux... (1 Reply)
Discussion started by: w1r3d
1 Replies

6. Solaris

rotating a log yearly

Hi, I am having some troubles using /usr/sbin/logadm to rotate sulog yearly. Can someone please assist with the correct syntax to rotate the sulog yearly? I'd like to maintain up to 3 years of logs. I am on Solaris 10. Thanks, (1 Reply)
Discussion started by: lwif
1 Replies

7. Shell Programming and Scripting

Monitoring specific string or keyword in rotating log files.

Hi there, I like to ask how i shall monitor specific string or keyword in rotating log files. e.g. I have at 10 rotating logfiles. I use the command below to grep the string, but eventually become non functional because the logfile rotates and new logfile is active. tail -f <logfile1> |grep... (1 Reply)
Discussion started by: shtobias
1 Replies

8. Shell Programming and Scripting

Rotating snapshot backup using rsync

I want to take daily backup(11pm) of /var/www to /mnt/bak excluding /var/www/videos and /var/www/old. HOW to implement a rotating snapshot method, so that i can have multiple(say 4) automatically rotating backups. (0 Replies)
Discussion started by: proactiveaditya
0 Replies

9. Red Hat

ip rotating on exim mail server

Hi all, We have the exim mail server configured on cpanel in centos. We have 5 dedicated ip's. So, when i sending mails to client systems, it should be rotate that ip addressees on every 15 minutes. That means Ip rotating. How can i do it. Can anybody show me how to do it. Thanks, (0 Replies)
Discussion started by: mastansaheb
0 Replies

10. Shell Programming and Scripting

Pattern count on rotating logs for the past 1 Hr

Hi All, I have a requirement to write a shell script to search the logs in past 1 hour and extract some pattern from it and count it cumulatively to a file. The problem which I'm facing here is - logs rotates on size basis, say if size of log reaches 5 MB then new log will be generated and... (7 Replies)
Discussion started by: Gem_In_I
7 Replies
AT(1)							      General Commands Manual							     AT(1)

NAME
at - execute commands at a later time SYNOPSIS
at [ -c ] [ -s ] [ -m ] time [ day ] [ file ] DESCRIPTION
At spools away a copy of the named file to be used as input to sh(1) or csh(1). If the -c flag (for (csh(1))) or the -s flag (for (sh(1))) is specified, then that shell will be used to execute the job; if no shell is specified, the current environment shell is used. If no file name is specified, at prompts for commands from standard input until a ^D is typed. If the -m flag is specified, mail will be sent to the user after the job has been run. If errors occur during execution of the job, then a copy of the error diagnostics will be sent to the user. If no errors occur, then a short message is sent informing the user that no errors occurred. The format of the spool file is as follows: A four line header that includes the owner of the job, the name of the job, the shell used to run the job, and whether mail will be set after the job is executed. The header is followed by a cd command to the current directory and a umask command to set the modes on any files created by the job. Then at copies all relevant environment variables to the spool file. When the script is run, it uses the user and group ID of the creator of the spool file. The time is 1 to 4 digits, with an optional following `A', `P', `N' or `M' for AM, PM, noon or midnight. One and two digit numbers are taken to be hours, three and four digits to be hours and minutes. If no letters follow the digits, a 24 hour clock time is understood. The optional day is either (1) a month name followed by a day number, or (2) a day of the week; if the word `week' follows, invocation is moved seven days further off. Names of months and days may be recognizably truncated. Examples of legitimate commands are at 8am jan 24 at -c -m 1530 fr week at -s -m 1200n week At programs are executed by periodic execution of the command /usr/libexec/atrun from cron(8). The granularity of at depends upon the how often atrun is executed. Error output is lost unless redirected or the -m flag is requested, in which case a copy of the errors is sent to the user via mail(1). FILES
/usr/spool/at spooling area /usr/spool/at/yy.ddd.hhhh.* job file /usr/spool/at/past directory where jobs are executed from /usr/spool/at/lasttimedone last time atrun was run /usr/libexec/atrun executor (run by cron(8)) SEE ALSO
atq(1), atrm(1), calendar(1), sleep(1), cron(8) DIAGNOSTICS
Complains about various syntax errors and times out of range. BUGS
Due to the granularity of the execution of /usr/libexec/atrun, there may be bugs in scheduling things almost exactly 24 hours into the future. If the system crashes, mail is not sent to the user informing them that the job was not completed. Sometimes old spool files are not removed from the directory /usr/spool/at/past. This is usually due to a system crash, and requires that they be removed by hand. 4th Berkeley Distribution October 21, 1996 AT(1)
All times are GMT -4. The time now is 06:38 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy